Je souhaite utiliser davantage MeCab dans le flux précédent. Il était trop subdivisé dans la division. Utilisez MeCab pour faire des choses comme la segmentation. Je ne sais pas s'il y a Cabocha et KNP (je le répète, ~~ jaune B-boy ~~ je veux utiliser MeCab). Je n'utilise pas d'analyse morphologique, donc je vais essayer l'analyse morphologique et attacher les mots attachés (mots auxiliaires, verbes auxiliaires) aux mots précédents.
D'après les résultats, je n'ai pas utilisé MeCab. J'ai décidé que janome était plus concis parce que je n'avais besoin que de la forme superficielle et d'une partie du mot. ~~ Cependant, j'ai essayé diverses choses avec MeCab, lu l'article à mettre dans DataFrame, et cela s'est étrangement transformé en quelques minutes et c'est devenu une erreur de mémoire, donc j'ai tellement apprécié ~~ En concaténant les compléments avec le code ci-dessous, la longueur moyenne des mots séparés était de 2,96 (2,16 en écriture séparée).
from janome.tokenizer import Tokenizer
with open("./gennama.txt","r") as f:
data = f.read()
tokenizer = Tokenizer()
tokens = tokenizer.tokenize(data)
surface_list = []
part_of_speech_list = []
for token in tokens:
surface_list.append(token.surface)
part_of_speech_list.append(token.part_of_speech.split(",")[0])
text_data = []
for i in range(len(surface_list)):
if part_of_speech_list[i] == "symbole":
continue
elif part_of_speech_list[i] == "Particule" or part_of_speech_list[i] == "Verbe auxiliaire":
row = text_data.pop(-1) + surface_list[i]
else:
row = surface_list[i]
text_data.append(row)
Avec cela, comme dans le temps précédent, nous avons classé les voyelles qui sont disposées dans les données d'entrée et sortie les mots qui les incluent. Le résultat de sortie est supérieur à celui de l'écriture séparée, mais aucun aspect pratique n'a été trouvé. Après tout, N-gramme est le plus approprié pour le moment, l'ordre des mots reste et il est divisé là où il ne doit pas être divisé, donc si vous le connectez, vous pouvez détecter la rime. Remarquez que c'est ici. Hiragana pour Kanji avant N-gramme ... À l'origine, si vous convertissez Kanji en lecture, la variation de N-gramme est susceptible d'augmenter. (~~ Kanji peut être fait avec kakasi ~~) Au fait, quand j'ai analysé la morphologie avec MeCab plus tôt, il y avait un élément de "lecture". Utilisons MeCab.
import MeCab
with open("./gennama.txt","r") as f:
data = f.read()
yomi_data = ""
mecab = MeCab.Tagger("-Ochasen")
lines = mecab.parse(data).split("\n")
for line in lines:
if line.split("\t")[0] == "EOS":
break
else:
yomi_data += line.split("\t")[1]
"Shitamachi" -> "Tamachi" -> "iaai", et 4 voyelles peuvent être représentées par 4 lettres. Mais qu'en est-il du cas du "moment" -> "shunkan" -> "ua"? Deux voyelles doivent être représentées par cinq lettres. Si vous le divisez en N caractères en fonction de la lecture, vous pouvez également faire "Tama / Chi" etc. Cependant, "Shunkan" devient inutilement long. Ensuite, utilisez-vous N-gramme après avoir créé des données de voyelle? La couche de surface ne peut pas être récupérée même si un index est attribué aux données. Il ne peut être bon que la séquence «aa» dans «centre-ville» ne soit pas détectée. Je ne peux pas penser à un plan d'amélioration tout de suite, mais je veux y réfléchir ici.
D'une part, il peut être bon d'ajouter diverses méthodes de notation. Par exemple, même si vous laissez des consonnes, si elles correspondent, vous pouvez les ajouter et vous pouvez additionner plusieurs scores. Dans ce cas, il semble possible de traiter le «réfrigérateur» comme (Reizoko, Reizoko). L'autre consiste à dessiner un graphique de mots divisés en nœuds en utilisant le score sur les arêtes. En fait, je l'ai essayé quand la méthode de division ne pouvait être que la division spatiale, mais elle ne s'est pas déroulée comme prévu (je suppose que le thème en vient à la centralité de la médiation?). J'essaierai d'étudier «networkx» à partir de zéro. (~~ Je m'inquiète de la date de publication du prochain article. Cependant, lorsque j'étudiais le moteur de recherche et que j'ai vu la somme des scores de PageRank et de distance de mots, j'ai pensé que cela pourrait être utile, alors j'ai étudié. Je vais ~~)
Recommended Posts