Verwenden Sie die eingeschränkte MeCab-Analyse (Teilanalyse) in Python über natto-py

Constraint-Analyse (Teilanalyse)

Die Funktion der eingeschränkten Analyse (Teilanalyse) von MeCab ist eine Funktion, die verwendet wird, wenn einige morphologische Informationen eines Satzes bekannt sind oder die Grenze bekannt ist. Das Python- und MeCab-Bindungs-Natto-Py bietet drei eingeschränkte Analysemethoden.

  1. Option --partial / -p
  2. Festlegen einer Randbedingung
  3. Festlegen von Funktionseinschränkungen

Teilanalyse mit --partial Option

Geben Sie beim Abrufen einer MeCab-Instanz die Option "--partial" oder "-p" an. Die an parse übergebene Eingabeanweisung beschreibt die Einschränkung im folgenden Format.

from natto import MeCab

text = """Garten\t Hoge
Zu
Haniwa\t Hoge
Niwatori\t Hoge
Es gibt.
"""

with MeCab("--partial") as nm:
    print(nm.parse(text))
 
Niwahoge
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Haniwa Hoge
Niwatori Hoge
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Das Verb das ist,Unabhängigkeit,*,*,Ein Schritt,Grundform,Ist,Il,Il
.. Symbol,Phrase,*,*,*,*,。,。,。
EOS
    

Im obigen Beispiel wird das Analyseergebnis an die Standardausgabe gesendet. Verwenden Sie für feinere Einschränkungen jedoch die Merkmale "Grenze" oder "Merkmal".

Randbedingungen

Wenn Sie die Wortgrenzen im Voraus kennen, können Sie mit dem Schlüsselwortargument border_constraints einen regulären Ausdruck oder eine Zeichenfolge angeben, deren Grenzen kompiliert wurden. Diejenigen, die der angegebenen Grenze für morphologische Elemente entsprechen, werden als ein morphologisches Element behandelt und analysiert.

text = "Es gibt ein Eichhörnchen im Eichhörnchen."

patt = "Niwatori|Haniwa|Garten"

with MeCab() as nm:
    #Informationen zu jedem MeCabNode erhalten Sie, indem Sie eine morphologische Randbedingung angeben
    for n in nm.parse(text, boundary_constraints=patt, as_nodes=True):
        if not (n.is_bos() or n.is_eos()):
            print("{}:\t{}". format(n.surface, n.feature))

# BOS/EOS-Knoten weglassen
Garten:Substantiv,Allgemeines,*,*,*,*,*
Zu:Partikel,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Haniwa:Substantiv,Allgemeines,*,*,*,*,Haniwa,Haniwa,Haniwa
Niwatori:Substantiv,Allgemeines,*,*,*,*,Niwatori,Hähnchen,Hähnchen
Aber:Partikel,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Ist:Verb,Unabhängigkeit,*,*,Ein Schritt,Grundform,Ist,Il,Il
。:Symbol,Phrase,*,*,*,*,。,。,。  

Weitere Informationen finden Sie unter 6.2. Operation für reguläre Ausdrücke und re.finditer. /re.html#re.finditer).

Funktionseinschränkungen

Mit dem Schlüsselwortargument feature_constraints können Sie die Teilwortklassifizierung für jedes bestimmte Formularelement angeben. Tupel, das Teilwörter für morphologische Elemente als Paar enthält, und diese morphologischen Elemente und Teilwortzuordnungen werden weiter im Tupel gespeichert. Übergeben Sie es dann wie folgt an die Analysemethode:

feat = (("Niwatori","Hoge"), ("Haniwa","HogeHoge"), ("Garten","更にHoge"))

with MeCab() as nm:
    #Rufen Sie Informationen für jeden MeCabNode ab, indem Sie Teilworteinschränkungen für einige Formularelemente angeben
    for n in nm.parse(text, feature_constraints=feat, as_nodes=True):
        if not (n.is_bos() or n.is_eos()):
            print("{}:\t{}". format(n.surface, n.feature))

# BOS/EOS-Knoten weglassen
Garten:Weiteres Lösen
Zu:Partikel,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Haniwa:Hogehoge
Niwatori:Hoge
Aber:Partikel,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Ist:Verb,Unabhängigkeit,*,*,Ein Schritt,Grundform,Ist,Il,Il
。:Symbol,Phrase,*,*,*,*,。,。,。

das ist alles

Referenz

Recommended Posts

Verwenden Sie die eingeschränkte MeCab-Analyse (Teilanalyse) in Python über natto-py
Verwenden Sie config.ini mit Python
Verwenden Sie Valgrind mit Python
Verwenden Sie Mecab mit Python 3
Verwenden Sie den Profiler in Python
Mal sehen, wie def in Python verwendet wird
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Verwenden Sie Random Forest mit Python
Verwenden Sie Spyder von Python IDE
Verwenden Sie Pythons MeCab-Bindungs-Natto-Py
Setzen Sie MeCab in "Windows 10; Python3.5 (64bit)"
CSS-Analyse mit cssutils in Python
Verwendung von SQLite in Python
Windows 10: Installieren der MeCab-Bibliothek für Python
Verwenden Sie rospy mit virtualenv in Python3
Analysieren Sie das Subversion-Commit-Protokoll in Python
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Analysieren Sie das Git-Commit-Protokoll in Python
Verwenden Sie OpenCV mit Python 3 in Window
Ein Memorandum, weil ich beim Versuch, MeCab mit Python zu verwenden, gestolpert bin
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwenden Sie print in Python2 lambda expression
Python3> im Schlüsselwort> Wahr mit teilweiser Übereinstimmung?
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Verwenden Sie \ d nicht in regulären Python 3-Ausdrücken!
Verwendung von __slots__ in der Python-Klasse
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
Verwendung regulärer Ausdrücke in Python
Verwendung ist und == in Python
Verwenden Sie Python und MeCab mit Azure-Funktionen
Verwendung der C-Bibliothek in Python
Verwendung der Python-Bildbibliothek in der Python3-Serie
3 Schritte, um Python + Mecab nur in yum zu setzen
Zusammenfassung der Verwendung von MNIST mit Python
Verwenden Sie ein Kryptografiemodul, das OpenSSL in Python verarbeitet
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verwenden Sie verschiedene Rabbimq-Funktionen mit Python Pika
Python-Bibliothek zur Phrasen- / Syntaxanalyse (erste Umfrage 2014.11, teilweise Hinzufügung 2019.10)
Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!
Wie man tkinter mit Python in Pyenv benutzt
Verwenden Sie jupyter-lab, das in einer virtuellen Python-Umgebung (venv) installiert ist.
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Verwenden Sie eine benutzerdefinierte Fehlerseite mit Python / Tornado
Verwenden Sie Python im Docker-Container als Pycharm-Interpreter
[Frage] Was passiert, wenn Sie% in Python verwenden?
Verwenden Sie die LibreOffice-App in Python (3) Bibliothek hinzufügen
Verwenden Sie pydantic beim Lesen von Umgebungsvariablen in Python
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
Verwenden Sie Such-Tweets: Vollständiges Archiv / Sandbox in Python
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen