[PYTHON] J'ai essayé l'analyse morphologique et la vectorisation de mots

Essayez d'utiliser Word2vec

pip install gensim
pip install janome
#Importer les bibliothèques requises

from janome.tokenizer import Tokenizer
from gensim.models import word2vec
import re

#Lire après avoir ouvert le fichier txt
binarydata = open("kazeno_matasaburo.txt").read()

#Au fait, celui qui a imprimé et vérifié un par un
binarydata = open("kazeno_matasaburo.txt")
print(type(binarydata))

Résultat de l'exécution <class'_io.BufferedReader '>

binarydata = open("kazeno_matasaburo.txt").read()
print(type(binarydata))

Résultat de l'exécution <class'bytes '>


#Convertir le type de données en type chaîne (comment écrire en python)
text = binarydata.decode('shift_jis')
#Coupez les données inutiles
text = re.split(r'\-{5,}',text)[2]
text = re.split(r'Livre du bas:',text)[0]
text = text.strip()

#Effectuer une analyse morphologique
t = Tokenizer()
results = []
lines = text.split("\r\n")  #Séparé par ligne

for line in lines:
    s = line
    s = s.replace('|','')
    s = re.sub(r'《.+?》','',s)
    s = re.sub(r'[#.+?]','',s)
    tokens = t.tokenize(s)  #Contient celui analysé
    r = []
  #Sortez-les un par un.base_forme.Vous pouvez y accéder en surface
    for token in tokens:
        if token.base_form == "*":
            w = token.surface
        else:
            w = token.base_form
        ps = token.part_of_speech
        hinshi = ps.split(',')[0]
        if hinshi in ['nom','adjectif','verbe','symbole']:
            r.append(w)
    rl = (" ".join(r)).strip()
    results.append(rl)
    print(rl)

#Ecrire l'analysé en même temps que le fichier est généré
wakachigaki_file = "matasaburo.wakati"
with open(wakachigaki_file,'w', encoding='utf-8') as fp:
    fp.write('\n'.join(results))

#Début de l'analyse
data = word2vec.LineSentence(wakachigaki_file)
model = word2.Word2Vec(data,size=200,window=10,hs=1,min_count=2,sg=1)
model.save('matasaburo.model')

#essayez d'utiliser le modèle
model.most_similar(positive=['école'])

Résumé

① Obtenez la phrase que vous souhaitez analyser. ② Traitez pour qu'il ne s'agisse que de phrases. Débarrassez-vous des choses comme la dernière référence ③ Retirez ligne par ligne avec l'instruction for et supprimez les parties inutiles. ④ Effectuer une analyse morphologique avec tokenizer. Mettez-le dans la liste. ⑤ Ecrire la liste créée dans un fichier ⑥ Créer un modèle à l'aide du fichier analysé morphologiquement

Recommended Posts

J'ai essayé l'analyse morphologique et la vectorisation de mots
J'ai essayé l'analyse morphologique du commentaire général du putain de jeu de l'année
J'ai essayé l'analyse par grappes de la carte météo
J'ai essayé différentes choses avec Python: le grattage (Beautiful Soup + Selenium + PhantomJS) et l'analyse morphologique
J'ai affiché le chat de YouTube Live et essayé de jouer
J'ai essayé d'utiliser GrabCut d'OpenCV
J'ai joué avec Mecab (analyse morphologique)!
Analyse morphologique de phrases contenant des mots récents dans un environnement Windows10 64 bits
J'ai essayé de faire 5 modèles de base d'analyse en 3 ans
J'ai essayé l'analyse de régression multiple avec régression polypoly
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai installé DSX Desktop et l'ai essayé
J'ai essayé l'analyse de séries chronologiques! (Modèle AR)
J'ai essayé l'analyse factorielle avec des données Titanic!
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 2: J'ai essayé d'utiliser PyEZ
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
Conversion entre mots singuliers et pluriels
J'ai essayé d'effectuer une analyse de cluster de clients à l'aide des données d'achat
J'ai essayé la détection 3D d'une voiture
J'ai essayé de combiner Fabric, Cuisine et Jinja2
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
J'ai essayé la reconnaissance manuscrite des caractères des runes avec scikit-learn
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 1: Aperçu
J'ai essayé des centaines de millions de SQLite avec python
J'ai essayé la fonction de tableau croisé dynamique des pandas
J'ai essayé la reconnaissance d'image de CIFAR-10 avec Keras-Learning-
J'ai essayé le web scraping en utilisant python et sélénium
J'ai essayé la reconnaissance d'image de CIFAR-10 avec la reconnaissance d'image Keras-
J'ai essayé d'informer Slack de la mise à jour de Redmine
J'ai essayé la détection d'objets en utilisant Python et OpenCV
J'ai essayé de trouver le rapport de circonférence par 100 millions de chiffres
J'ai essayé Flask avec des conteneurs distants de VS Code
J'ai essayé l'analyse du SRAS avant le virus corona
J'ai essayé de jouer en connectant PartiQL et MongoDB
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
J'ai essayé la différenciation jacobienne et partielle avec python
J'ai essayé l'analyse technique FX par AI "scikit-learn"
J'ai essayé la synthèse de fonctions et le curry avec python
J'ai essayé de corriger la forme trapézoïdale de l'image
Comparaison approfondie de trois bibliothèques d'analyse morphologique Python
Résumé relatif aux E / S de python et fortran
J'ai lu et implémenté les variantes de UKR
J'ai essayé d'utiliser le filtre d'image d'OpenCV
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé d'implémenter "Bases de l'analyse des séries temporelles et du modèle d'espace d'état" (Hayamoto) avec pystan
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
J'ai essayé PyQ
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai essayé AutoKeras
J'ai essayé le moulin à papier
Traitement d'image avec Python (j'ai essayé de le binariser en art mosaïque 0 et 1)
J'ai essayé django-slack
J'ai essayé Django