Ich möchte benannte Entitäten in einem bestimmten Feld (z. B. Baseball) erkennen. Ich weiß, dass es Werkzeuge wie StanfordNER, LingPipe, AlchemyAPI gibt, und ich habe ein wenig Tests mit ihnen gemacht. Aber was ich will, ist wie schon erwähnt field-specific. Wie ist das möglich?Focused Named Entity Recognition (NER)?
Antwort
Ein Ansatz sein kann
eine allgemeinen (nicht domänenspezifischen) Tool verwenden
Verwenden Sie ein Thema Klassifikator Die Namen der erkennen Texte, um herauszufiltern, die nicht in der Domäne
Wenn die Gesamtgröße des Datensatzes ausreichend ist Wenn die Genauigkeit des Extraktors und Klassifikators gut genug ist, können Sie das Ergebnis verwenden, um eine Liste von Namen von Personen zu erhalten, die eng mit der fraglichen Domäne verwandt sind (z.B. durch Einschränkung der Ergebnisse auf diejenigen, die in domänenspezifischen Texten signifikant häufiger als in anderen Texten erwähnt werden).
Im Fall von Baseball sollte dies eine ziemlich gute Möglichkeit sein, eine Liste von Menschen bezogen auf Baseball zu erhalten. Es wäre jedoch kein guter Weg, um nur eine Liste von Spielern Baseball zu erhalten. Für letztere wäre es notwendig, den genauen Kontext zu analysieren, in dem die Namen erwähnt werden und die Dinge über sie gesagt werden; aber vielleicht ist das nicht erforderlich.
Edit: von Thema Klassifikator meine ich das gleiche wie das, was andere Menschen einfach als Kategorisierung beziehen könnten, Dokumentenklassifizierung, Domain Klassifizierung, oder ähnliches. Beispiele für vorgefertigte Tools sind der Classifier in Python-NLTK (Beispiele siehe here) und der in LingPipe (siehe here).
Ich weiß nichts über Subjektklassifikatoren. Könnten Sie mir einen Link dafür verweisen? Das ist, was ich tun möchte: Für meine Forschung baue ich einen fokussierten Web-Crawler, der NEs verwendet, um seinen Crawl auf der gegebenen Domäne (z.B. Baseball) zu führen. Der Crawler kann sich allein von den NEs leiten lassen oder in eine auf maschinellem Lernen basierende Dokumentenklassifizierung einbezogen werden (was die existierenden Ansätze tun). Ich denke über einen Weg nach, dies zu tun. Bitte werfen Sie einen Blick auf meine Frage -http: //stackoverflow.com/questions/10077647/named-entities-as-a-feature-in-text-categorization- auch. Ich schätze Ihre Kommentare sehr. Vielen Dank. – KillBill
@ user601357: Ich meine nur einen Textklassifikator, mehr oder weniger das Gleiche wie das, was Sie als _Dokumentklassifikation_ bezeichnen. Ich habe trotzdem ein paar Links zur Antwort hinzugefügt. – jogojapan
Danke. Wie werde ich NEs in die Textklassifizierung integrieren? Was ich bis jetzt gedacht habe, ist die Anzahl der verschiedenen Namensentitäten (PERS = x, LOC = y, ORG = z) zu zählen und sie zusammen mit den normalen Textklassifikationsmerkmalen als Merkmale zu verwenden. Was denkst du darüber? – KillBill
Werfen Sie einen Blick auf smile-ner.appspot.com, die über 250 Kategorien umfasst. Insbesondere betrifft es viele Personen/Mannschaften/Vereine im Sportbereich. Kann für Ihren Zweck nützlich sein.
Unter "spezifisches Feld" meinen Sie eine bestimmte Domäne oder ein bestimmtes Gebiet? Das Training des NER zu einem bestimmten Korpus für eine spezifische Domäne kann eine Lösung sein. –
@Kenston mein Fehler. Ja, ich meine, auf eine bestimmte Domäne konzentriert. Wenn ich zum Beispiel den NER-Klassifizierer auf Namen von Baseballspielern trainiere, kann er weiterhin nur Namen dieser Domäne akzeptieren und NICHT die Namen von Politikern oder anderen? Haben sie ein solches Verhalten, das ich will? – KillBill
Ich denke, es hängt von den Funktionen ab. Wenn die Funktionen mehr auf Fälle (Titel oder Großbuchstaben) ausgerichtet sind, dann sind die Chancen, dass die Namen der Politiker enthalten sind. Ist es nicht ideal für dich, ein Ortsverzeichnis (Liste von Spielernamen) zu haben? –