Wie baut man ein System auf?
Wie baut man ein System zum Extrahieren strukturierter Informationen und Daten aus unstrukturiertem Text auf? Welche Methoden nutzen diese Art von Verhalten? Welche Korpora eignen sich für diese Arbeit? Ist es möglich, das Modell zu trainieren und auszuwerten?
Die Informationsextraktion, insbesondere die strukturierte Informationsextraktion, kann mit Datenbankeinträgen verglichen werden. Die entsprechende Beziehung bindet die entsprechenden Dateninformationen. Um bei unstrukturierten Daten wie natürlicher Sprache die entsprechende Beziehung zu erhalten, sollte die der Entität entsprechende spezielle Beziehung mithilfe einiger Datenstrukturen wie Zeichenfolgen und Elemente gesucht und aufgezeichnet werden.
Entitätserkennung: Chunking-Technologie
Zum Beispiel: Wir haben den gelben Hund gesehen, entsprechend der Chunking-Idee werden die letzten drei Wörter in NP und das unterteilt drei Wörter im Inneren. Jedes Wort entspricht DT/JJ/NN. Saw ist in VBD unterteilt. Für die letzten drei Wörter ist NP der Chunk (größere Menge). Um dies zu erreichen, können Sie die NLTK-eigene Chunking-Syntax, ähnlich wie bei regulären Ausdrücken, verwenden, um Satz-Chunking zu implementieren.
Konstruktion der Chunked-Grammatik
Achten Sie einfach auf drei Punkte:
Grundlegendes Chunking:
组块 :{组块下的子组块}
(ähnlich:"NP: {<DT>?<JJ>*<NN>}"
So eine Zeichenfolge). Und ?*+ speichert die Bedeutung des regulären Ausdrucks.
import nltk sentence = [('the','DT'),('little','JJ'),('yellow','JJ'),('dog','NN'),('brak','VBD')] grammer = "NP: {<DT>?<JJ>*<NN>}"cp = nltk.RegexpParser(grammer) #生成规则result = cp.parse(sentence) #进行分块print(result) result.draw() #调用matplotlib库画出来
kann eine Lücke definieren:
}<VBD|IN>+{
import nltk sentence = [('the','DT'),('little','JJ'),('yellow','JJ'),('dog','NN'),('bark','VBD'),('at','IN'),('the','DT'),('cat','NN')] grammer = """NP: {<DT>?<JJ>*<NN>} }<VBD|NN>+{ """ #加缝隙,必须保存换行符cp = nltk.RegexpParser(grammer) #生成规则result = cp.parse(sentence) #进行分块print(result)
kann ein rekursiver Aufruf sein, der der rekursiven Verschachtelung in der Sprache entspricht Struktur. Zum Beispiel:
VP: {<NP|PP|CLAUSE>*} PP:{<NN><VP>}
. Zu diesem Zeitpunkt kann der ParameterRegexpParser
der Funktionloop
auf 2 gesetzt und mehrmals wiederholt werden, um Auslassungen zu vermeiden.
Baumkarte
Wenn Sie print(type(result))
aufrufen, um den Typ anzuzeigen, werden Sie feststellen, dass es sich um nltk.tree.Tree
handelt. Wie der Name schon sagt, handelt es sich um eine baumartige Struktur. nltk.Tree
Kann eine Baumstruktur realisieren und unterstützt die Spleißtechnologie, indem es Knotenabfragen und Baumzeichnungen ermöglicht.
tree1 = nltk.Tree('NP',['Alick'])print(tree1) tree2 = nltk.Tree('N',['Alick','Rabbit'])print(tree2) tree3 = nltk.Tree('S',[tree1,tree2])print(tree3.label()) #查看树的结点tree3.draw()
IOB-Tags
repräsentieren intern, extern bzw. den Anfang (die ersten Buchstaben englischer Wörter). Bei den oben genannten Klassifizierungen wie NP und NN müssen Sie nur I-/B-/O- voranstellen. Dadurch können Sammlungen außerhalb der Regeln offengelegt werden, ähnlich wie beim Hinzufügen von Lücken oben.
Entwicklung und Evaluierung von Chunkern
NLTK stellt uns bereits Chunker zur Verfügung, wodurch manuelle Bauregeln reduziert werden. Gleichzeitig stellt es auch Inhalte bereit, die als Referenz für die Erstellung unserer eigenen Regeln in Blöcke unterteilt wurden.
#这段代码在python2下运行from nltk.corpus import conll2000print conll2000.chunked_sents('train.txt')[99] #查看已经分块的一个句子text = """ he /PRP/ B-NP accepted /VBD/ B-VP the DT B-NP position NN I-NP of IN B-PP vice NN B-NP chairman NN I-NP of IN B-PP Carlyle NNP B-NP Group NNP I-NP , , O a DT B-NP merchant NN I-NP banking NN I-NP concern NN I-NP . . O"""result = nltk.chunk.conllstr2tree(text,chunk_types=['NP'])
Für die zuvor definierten Regeln cp
können Sie mit cp.evaluate(conll2000.chunked_sents('train.txt')[99])
die Genauigkeit testen. Mit dem zuvor erlernten Unigram-Tagger können wir Nominalphrasen in Blöcke segmentieren und die Genauigkeit der Erkennung benannter Entitäten und der Informationsextraktion testen.
class UnigramChunker(nltk.ChunkParserI):""" 一元分块器, 该分块器可以从训练句子集中找出每个词性标注最有可能的分块标记, 然后使用这些信息进行分块 """def __init__(self, train_sents):""" 构造函数 :param train_sents: Tree对象列表 """train_data = []for sent in train_sents:# 将Tree对象转换为IOB标记列表[(word, tag, IOB-tag), ...]conlltags = nltk.chunk.tree2conlltags(sent)# 找出每个词性标注对应的IOB标记ti_list = [(t, i) for w, t, i in conlltags] train_data.append(ti_list)# 使用一元标注器进行训练self.__tagger = nltk.UnigramTagger(train_data)def parse(self, tokens):""" 对句子进行分块 :param tokens: 标注词性的单词列表 :return: Tree对象 """# 取出词性标注tags = [tag for (word, tag) in tokens]# 对词性标注进行分块标记ti_list = self.__tagger.tag(tags)# 取出IOB标记iob_tags = [iob_tag for (tag, iob_tag) in ti_list]# 组合成conll标记conlltags = [(word, pos, iob_tag) for ((word, pos), iob_tag) in zip(tokens, iob_tags)]return nltk.chunk.conlltags2tree(conlltags) test_sents = conll2000.chunked_sents("test.txt", chunk_types=["NP"]) train_sents = conll2000.chunked_sents("train.txt", chunk_types=["NP"]) unigram_chunker = UnigramChunker(train_sents)print(unigram_chunker.evaluate(test_sents))
. Wenn „Binary“ auf „True“ gesetzt ist, werden benannte Entitäten nur als NE markiert; andernfalls sind die Tags etwas komplizierter.
nltk.ne_chunk(tagged_sent[,binary=False])
Wenn die benannte Entität bestimmt ist, kann
Das obige ist der detaillierte Inhalt vonWie baut man ein System auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie lösche ich Xiaohongshu-Notizen? Die meisten Benutzer wissen nicht, wie man Xiaohongshu-Notizen löscht. Als nächstes bringt der Editor den Benutzern Bilder und Texte zum Löschen von Xiaohongshu-Notizen ein Blick! Tutorial zur Verwendung von Xiaohongshu So löschen Sie Xiaohongshu-Notizen 1. Öffnen Sie zunächst die Xiaohongshu-App und rufen Sie die Hauptseite auf. Wählen Sie in der unteren rechten Ecke [Ich] aus, um den speziellen Bereich aufzurufen. 2. Klicken Sie dann im Bereich „Mein“ auf die Notizseite als Wählen Sie wie unten gezeigt die Notiz aus, die Sie löschen möchten. 3. Rufen Sie die Notizseite auf und klicken Sie auf [drei Punkte] in der oberen rechten Ecke. 4. Schließlich wird die Funktionsleiste unten erweitert. Klicken Sie zum Abschluss auf [Löschen].

Als Xiaohongshu-Benutzer kennen wir alle die Situation, in der veröffentlichte Notizen plötzlich verschwunden sind, was zweifellos verwirrend und besorgniserregend ist. Was sollen wir in diesem Fall tun? Dieser Artikel konzentriert sich auf das Thema „Was tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen“ und gibt Ihnen eine ausführliche Antwort. 1. Was soll ich tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen? Erstens: Keine Panik. Wenn Sie feststellen, dass Ihre Notizen fehlen, ist es wichtig, ruhig zu bleiben und nicht in Panik zu geraten. Dies kann durch einen Plattformsystemausfall oder Betriebsfehler verursacht werden. Die Überprüfung der Veröffentlichungsdatensätze ist einfach. Öffnen Sie einfach die Xiaohongshu-App und klicken Sie auf „Ich“ → „Veröffentlichen“ → „Alle Veröffentlichungen“, um Ihre eigenen Veröffentlichungsdatensätze anzuzeigen. Hier können Sie zuvor gepostete Notizen ganz einfach finden. 3.Reposten. Wenn gefunden

Wie füge ich Produktlinks in Notizen in Xiaohongshu hinzu? In der Xiaohongshu-App können Benutzer nicht nur verschiedene Inhalte durchsuchen, sondern auch einkaufen. Wenn Sie ein Experte in diesem Bereich sind, gibt es in dieser App viele Einkaufsempfehlungen und gute Produktfreigaben Mit der App können Sie auch einige Einkaufserlebnisse teilen, Händler für eine Zusammenarbeit finden, Links in Notizen hinzufügen usw. Viele Menschen sind bereit, diese App zum Einkaufen zu verwenden, weil sie nicht nur bequem ist, sondern auch viele Experten gibt einige Empfehlungen ab. Sie können interessante Inhalte durchsuchen und sehen, ob es Kleidungsprodukte gibt, die zu Ihnen passen. Schauen wir uns an, wie man Produktlinks zu Notizen hinzufügt! So fügen Sie Produktlinks zu Xiaohongshu-Notizen hinzu: Öffnen Sie die App auf dem Desktop Ihres Mobiltelefons. Klicken Sie auf die App-Homepage

Dieses Tutorial zeigt Ihnen, wie Sie bestimmte Texte oder Phrasen auf allen geöffneten Tabs in Chrome oder Edge unter Windows finden. Gibt es eine Möglichkeit, eine Textsuche auf allen geöffneten Tabs in Chrome durchzuführen? Ja, Sie können eine kostenlose externe Weberweiterung in Chrome verwenden, um Textsuchen auf allen geöffneten Tabs durchzuführen, ohne die Tabs manuell wechseln zu müssen. Einige Erweiterungen wie TabSearch und Strg-FPlus können Ihnen dabei helfen, dies einfach zu erreichen. Wie durchsucht man Text auf allen Registerkarten in Google Chrome? Strg-FPlus ist eine kostenlose Erweiterung, die es Benutzern erleichtert, auf allen Registerkarten ihres Browserfensters nach einem bestimmten Wort, einer bestimmten Phrase oder einem bestimmten Text zu suchen. Diese Erweiterung

Der Reiz des Erlernens der C-Sprache: Das Potenzial von Programmierern freisetzen Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Computerprogrammierung zu einem Bereich geworden, der viel Aufmerksamkeit erregt hat. Unter vielen Programmiersprachen war die Sprache C schon immer bei Programmierern beliebt. Seine Einfachheit, Effizienz und breite Anwendung machen das Erlernen der C-Sprache für viele Menschen zum ersten Schritt, um in den Bereich der Programmierung einzusteigen. In diesem Artikel geht es um den Reiz des Erlernens der C-Sprache und darum, wie man das Potenzial von Programmierern durch das Erlernen der C-Sprache freisetzt. Der Reiz des Erlernens der C-Sprache liegt zunächst einmal in ihrer Einfachheit. Im Vergleich zu anderen Programmiersprachen C-Sprache

Lernen Sie Pygame von Grund auf: Komplettes Installations- und Konfigurations-Tutorial, spezifische Codebeispiele erforderlich. Einführung: Pygame ist eine Open-Source-Spieleentwicklungsbibliothek, die mit der Programmiersprache Python entwickelt wurde. Sie bietet eine Fülle von Funktionen und Tools, mit denen Entwickler problemlos eine Vielzahl von Typen erstellen können des Spiels. Dieser Artikel hilft Ihnen, Pygame von Grund auf zu erlernen und bietet ein vollständiges Installations- und Konfigurations-Tutorial sowie spezifische Codebeispiele, um Ihnen einen schnellen Einstieg zu erleichtern. Teil eins: Python und Pygame installieren Stellen Sie zunächst sicher, dass Sie dies getan haben

Beim Bearbeiten von Textinhalten in Word müssen Sie manchmal Formelsymbole eingeben. Manche Leute wissen nicht, wie man die Stammzahl in Word eingibt, also habe ich den Redakteur gebeten, mit meinen Freunden ein Tutorial zur Eingabe der Stammzahl in Word zu teilen. Ich hoffe, es hilft meinen Freunden. Öffnen Sie zunächst die Word-Software auf Ihrem Computer, öffnen Sie dann die Datei, die Sie bearbeiten möchten, und bewegen Sie den Cursor an die Stelle, an der Sie das Stammzeichen einfügen müssen, siehe Beispielbild unten. 2. Wählen Sie [Einfügen] und dann im Symbol [Formel]. Wie im roten Kreis im Bild unten gezeigt: 3. Wählen Sie dann unten [Neue Formel einfügen]. Wie im roten Kreis im Bild unten gezeigt: 4. Wählen Sie [Radikal] und dann das entsprechende Radikal. Wie im roten Kreis im Bild unten gezeigt:

Als Lifestyle-Sharing-Plattform deckt Xiaohongshu Notizen in verschiedenen Bereichen wie Essen, Reisen und Schönheit ab. Viele Benutzer möchten ihre Notizen zu Xiaohongshu teilen, wissen aber nicht, wie das geht. In diesem Artikel werden wir den Prozess des Veröffentlichens von Notizen auf Xiaohongshu detailliert beschreiben und untersuchen, wie bestimmte Benutzer auf der Plattform blockiert werden können. 1. Wie veröffentliche ich Notizen-Tutorials auf Xiaohongshu? 1. Registrieren und anmelden: Zunächst müssen Sie die Xiaohongshu-APP auf Ihr Mobiltelefon herunterladen und die Registrierung und Anmeldung abschließen. Es ist sehr wichtig, dass Sie Ihre persönlichen Daten im persönlichen Zentrum vervollständigen. Indem Sie Ihren Avatar hochladen, Ihren Spitznamen und Ihre persönliche Vorstellung eingeben, können Sie anderen Benutzern das Verständnis Ihrer Informationen erleichtern und ihnen helfen, Ihren Notizen mehr Aufmerksamkeit zu schenken. 3. Wählen Sie den Veröffentlichungskanal aus: Klicken Sie unten auf der Startseite auf die Schaltfläche „Notizen senden“ und wählen Sie den Kanal aus, den Sie veröffentlichen möchten.
