TermExtract scheint ein Modul zum Extrahieren von Fachbegriffen aus Textdaten zu sein.
Automatisches Extraktionssystem für Fachbegriffe (Schlüsselwörter)
Bisher wurde es nur als Perl-Modul bereitgestellt, aber es scheint, dass Ende letzten Jahres eine Beta-Version für Python veröffentlicht wurde. Ich dachte, es könnte als Gegenmaßnahme gegen unbekannte Wörter bei der Analyse von Text verwendet werden, also habe ich versucht, es zu verwenden.
Laden Sie einfach die Zip-Datei von Official herunter, entpacken Sie sie an einen geeigneten Ort und führen Sie die folgenden Schritte aus.
python setup.py install
Leider scheint es nicht von Pip oder Conda installiert zu sein.
Offiziell
Erhält das morphologische Analyseergebnis von Wafubu, einer morphologischen Analysesoftware für japanische Sätze, und gibt eine Liste zusammengesetzter Wörter (durch Leerzeichen getrennte einzelne Nomenklatur) oder ein Wörterbuch zurück (zusammengesetztes Wort ist der Schlüssel und die Anzahl der Vorkommen des zusammengesetzten Wortes ist der Wert).
Es gibt.
Das zu übergebende morphologische Analyseergebnis scheint im folgenden Format (dem offiziellen Beispieltext unten) übergeben zu werden.
sample.txt
Nomenklatur für die Verarbeitung natürlicher Sprache,Allgemeines,*,*,*,*,Dummy,Dummy,Dummy
(Symbol,Klammern öffnen,*,*,*,*,(,(,(
Ri Hilfsverb,*,*,*,Literarische Sprache,Grundform,Ri,Li,Li
, Symbol,Lesepunkt,*,*,*,*,、,、,、
Englische Nomenklatur,Allgemeines,*,*,*,*,Dummy,Dummy,Dummy
Wortnomenklatur,Allgemeines,*,*,*,*,Dummy,Dummy,Dummy
:Substantiv,Verbindung ändern,*,*,*,*,*
natürliches Substantiv,Allgemeines,*,*,*,*,*
Sprache Nomen,Allgemeines,*,*,*,*,*
Verarbeitungsnomen,Allgemeines,*,*,*,*,*
・
・
・
Das morphologische Analyseergebnis in Mecab ist in Linien unterteilt. Laden Sie dies mit dem folgenden Python-Skript.
import termextract.mecab
import termextract.core
import collections
#Lesen Sie die Datei
tagged_text = open("sample.txt", "r", encoding="utf-8").read()
#Extrahieren Sie zusammengesetzte Wörter und berechnen Sie die Wichtigkeit
frequency = termextract.mecab.cmp_noun_dict(tagged_text)
LR = termextract.core.score_lr(frequency,
ignore_words=termextract.mecab.IGNORE_WORDS,
lr_mode=1, average_rate=1
)
term_imp = termextract.core.term_importance(frequency, LR)
#Sortieren und ausgeben in absteigender Reihenfolge der Wichtigkeit
data_collection = collections.Counter(term_imp)
for cmp_noun, value in data_collection.most_common():
print(termextract.core.modify_agglutinative_lang(cmp_noun), value, sep="\t")
Die Ausgabe sieht folgendermaßen aus:
Verarbeitung natürlicher Sprache 31.843366656181313
they 11.618950038622252
Bedeutung 10.392304845413264
Englisch 10.059467437463484
Grundtechnologie 9.361389277282864
Statistische Verarbeitung natürlicher Sprache 9.085602964160698
Analyse 8.485281374238571
・
・
・
Das Ergebnis ist fair und ich kann zusammengesetzte Wörter so extrahieren, wie sie sind (obwohl es viele Fälle gibt, in denen es offensichtlich seltsam ist ...).
Es ist jedoch auf subtile Weise schwierig, ** die Eingabe ist das morphologische Analyseergebnis von Mecab **. Ich hatte das Gefühl, dass es einfacher wäre, wenn ich einfachen oder getrennten Text übergeben könnte.
Es scheint, dass auch eine andere Extraktionsmethode vorgesehen ist. Eine davon, ** Extraktion der Fachbegriffe der japanischen Stoppwortmethode **, wird offiziell wie folgt erklärt.
Erhält einen japanischen Klartext und gibt eine Liste zusammengesetzter Wörter (durch Leerzeichen getrennte einzelne Nomenklatur) oder ein Wörterbuch zurück (zusammengesetzte Wörter sind der Schlüssel und die Anzahl der Vorkommen der zusammengesetzten Wörter ist der Wert). Das zusammengesetzte Wort wird ausgeschnitten, indem der Satz durch "Hiragana" und "Symbol" geteilt wird.
Ich denke, es bedeutet, mit Hiragana und Symbolen als Trennzeichen zu token (sorry, ich habe es nicht richtig gelesen ...)
Dies lädt nur einfachen Text.
import collections
import termextract.japanese_plaintext
import termextract.core
#Lesen Sie die Datei
text = open("sample.txt", "r", encoding="utf-8").read()
#Extrahieren Sie zusammengesetzte Wörter und berechnen Sie die Wichtigkeit
frequency = termextract.japanese_plaintext.cmp_noun_dict(text)
LR = termextract.core.score_lr(frequency,
ignore_words=termextract.japanese_plaintext.IGNORE_WORDS,
lr_mode=1, average_rate=1
)
term_imp = termextract.core.term_importance(frequency, LR)
#Sortieren und ausgeben in absteigender Reihenfolge der Wichtigkeit
data_collection = collections.Counter(term_imp)
for cmp_noun, value in data_collection.most_common():
print(termextract.core.modify_agglutinative_lang(cmp_noun), value, sep="\t")
Die Ausgabe sieht folgendermaßen aus:
Künstliche Intelligenz 1226.4288753047445
Mensch 277.1173032591193
Intelligenz 185.75930965317852
Entwicklung 88.6373649378885
Bewusstsein 60.00624902367479
Künstlich 57.917332434843445
Möglich 55.20783921098894
・
・
・
Ich hoffe das ist einfach zu bedienen.
Oben haben wir die Ergebnismethode für die morphologische Analyse und die Stoppwortmethode eingeführt. Schauen wir uns jedoch die 20 besten Ergebnisse für jede Methode an.
Intelligenz 12.649110640673518
Computergestützte Intelligenz 5.029733718731742
Kämpfer 4.7381372205375865
Kampf 4.58257569495584
Zur Kampfkontrolle 4.4406237146062955
Computer 4.426727678801286
Künstliche Intelligenz 4.355877174692862
Studie 4.0
Berechnung 4.0
Automatische Steuerung 3.9359793425308607
Lernen 3.872983346207417
Automatisches Kampfsystem 3.802742902833608
Technologie der künstlichen Intelligenz 3.7719455481170785
Logische Berechnung 3.7224194364083982
Maschinelles Lernen 3.6628415014847064
Symbolische KI 3.6342411856642793
Automatische Steuerung möglich 3.5254687665352296
Logik 3.4641016151377544
Maschine 3.4641016151377544
Mechanischer Computer 3.413473673690155
Künstliche Intelligenz 1226.4288753047445
Mensch 277.1173032591193
Intelligenz 185.75930965317852
Entwicklung 88.6373649378885
Bewusstsein 60.00624902367479
Künstlich 57.917332434843445
Möglich 55.20783921098894
Studie 51.27978102078589
Lernen 49.31317739277511
Gesellschaft für künstliche Intelligenz 48.855373993311964
Realisierung 48.748063633179314
Theorie 40.51490946041508
Ankündigung 39.39438441683934
Computergestützte Intelligenz 35.98098913381863
Möglichkeit 34.82443169313786
Methode 34.6517883306879
Verwenden Sie 32.82677759681713
Intellektuell 31.52620185751426
Bedienung 30.582796407248203
Aktion 30.582796407248203
Aussehen 29.146786564179294
Auf den ersten Blick scheint es, dass die morphologische Analysemethode wichtigere Schlüsselwörter mit einer hohen Punktzahl extrahieren kann.
Darf ich es als eine einfache Möglichkeit betrachten, mit unbekannten Wörtern umzugehen, die von Mecab + Neologd nicht erkannt werden können? Im Fall der morphologischen Analysemethode ist es jedoch schwierig, sie als Modul zu verwenden, so dass Sie anscheinend selbst eine dünne Hülle erstellen müssen. Außerdem ist eine ordnungsgemäße Überprüfung erforderlich.
Recommended Posts