** mecab-ipadic-NEologd ** ist ein benutzerdefiniertes Wörterbuch, das das Standard-MeCab-Wörterbuch ergänzt.
Wörter wurden aus vielen Sprachressourcen im Web hinzugefügt und ** unterstützen neue Wörter, zusammengesetzte Wörter, Redewendungen usw. **.
Wie oben erwähnt, unterteilt der MeCab-Standard es in "individuell" und "Prinzip", aber mecab-ipadic-NEologd behandelt es als ein Wort "Individualismus".
** Verwenden Sie mecab-ipadic-NEologd **, um eine Reihe von Aufgaben auszuführen, z. B. ** Entfernen von Stoppwörtern ** und ** Ausdrücken in einem Netzwerk mit gleichzeitigem Auftreten **.
from google.colab import files
uploaded = files.upload()
with open('20200926_suga_un.txt', mode='rt', encoding='utf-8') as f:
read_text = f.read()
sugatxt = read_text
#Löschen Sie unnötige Zeichen / Symbole
def clean(text):
text = text.replace("\n", "")
text = text.replace("\u3000", "")
text = text.replace("「", "")
text = text.replace("」", "")
text = text.replace("(", "")
text = text.replace(")", "")
text = text.replace("、", "")
return text
text = clean(sugatxt)
#Zeile für Zeile teilen
lines = text.split("。")
# MeCab
!apt-get -q -y install sudo file mecab libmecab-dev mecab-ipadic-utf8 git curl python-mecab > /dev/null
!pip install mecab-python3 > /dev/null
# mecab-ipadic-NEologd
!git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /dev/null
!echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n > /dev/null 2>&1
#Vermeiden Sie Fehler mit symbolischen Links
!ln -s /etc/mecabrc /usr/local/etc/mecabrc
#Überprüfen Sie den Wörterbuchpfad
!echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
m_neo
mit dem Ausgabemodus als path
(= mecab-ipadic-NEologd).import MeCab
path = "-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd"
m_neo = MeCab.Tagger(path)
stopwords = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
"einer", "zwei", "drei", "vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "〇",
"Jahr", "Mond", "Tag", "Nächster", "Rabatt", "Mal", "Ziel", "Krankheit", "das ist alles", "Weniger als", "周Jahr", "Fall", "Jedes Mal",
"von", "もvon", "Ding", "Yo", "Sama", "Zum", "Neigen dazu", "Dies", "Es", "Das", "Wer",
"*", ",", ","]
result
zu noun_list
hinzu und fahren Sie mit der Verarbeitung des nächsten Satzes fort.noun_list = []
for line in lines:
result = []
v1 = m_neo.parse(line)
v2 = v1.splitlines()
for v in v2:
v3 = v.split("\t")
if len(v3) == 2:
v4 = v3[1].split(',')
if (v4[0] == "Substantiv") and (v4[6] not in stopwords):
result.append(v4[6])
noun_list.append(result)
list ()
auf und speichern Sie es in pair_list
.import itertools #Ein Modul, das Iteratorfunktionen sammelt
from collections import Counter #Eine Klasse, die die Anzahl der Vorkommen des Wörterbuchtyps zählt
#Generieren Sie eine satzbasierte Nomenklaturpaarliste
pair_list = []
for n in noun_list:
if len(noun_list) >= 2:
lt = list(itertools.combinations(n, 2))
pair_list.append(lt)
#Liste der Nasenpaare abflachen
all_pairs = []
for p in pair_list:
all_pairs.extend(p)
#Zählen Sie die Häufigkeit von Substantivpaaren
cnt_pairs = Counter(all_pairs)
sorted () [: 30]
, um 30 Paare zu sortieren und abzurufen, aber das Element von cnt_pairs
ist key = lambda x: x [1]
und die Anzahl der Vorkommen wird gezielt und reverse = True
Sortiert in absteigender Reihenfolge nach.import pandas as pd
import numpy as np
#Generieren Sie die 30 besten Wörterbuchpaare
dict = sorted(cnt_pairs.items(), key=lambda x:x[1], reverse=True)[:30]
#Diktattyp in 2D-Array konvertieren
result = []
for key, value in dict:
temp = []
for k in key:
temp.append(k)
temp.append(value)
result.append(temp)
data = np.array(result)
import matplotlib.pyplot as plt
import networkx as nx
%matplotlib inline
#Ein Modul, das matplotlib mit dem japanischen Display kompatibel macht
!pip install japanize-matplotlib
import japanize_matplotlib
#Diagrammobjekt generieren
G = nx.Graph()
#Daten lesen
G.add_weighted_edges_from(data)
#Zeichnen eines Diagramms
plt.figure(figsize=(10,10))
nx.draw_networkx(G,
node_shape = "s",
node_color = "chartreuse",
node_size = 800,
edge_color = "gray",
font_family = "IPAexGothic") #Japanische Schriftartspezifikation
plt.show()
mecab-ipadic-NEologd | MeCab Standard |
---|---|
"Infektion" | "Infektion", "Krankheit" |
"Entwicklungsländer" | "Unterwegs", "Land" |
"Südostasiatische Union" | "Südostasien", "Länder", "Union" |
"Menschliche Sicherheit" | "Mensch", "von", "Sicherheit", "Sicherheit" |
Recommended Posts