Frage

Ich versuche die Worte zu finden (insbesondere physische Objekte) im Zusammenhang mit einen einzigen Wort.Zum Beispiel:

Tennis:tennis Schläger, tennis ball, tennis Schuh

Snooker:snooker cue, snooker ball, Kreide

Schach:Schachbrett, Schach Stück

Bücherregal:Buch

Ich habe versucht, zu verwenden, WordNet, insbesondere die meronym semantische Beziehung;diese Methode ist jedoch nicht konsistent, wie die Ergebnisse unten zeigen:

Tennis:Aufschlag, volley -, Fuß-fault -, Sollwert -, Ertrag, Vorteil

Snooker: nichts

Schach:Schach bewegen, Schachbrett (dessen eigenen meronym Beziehungen zeigt 'square' & 'diagonal')

Bücherregal:Regal

Gewichtung der Begriffe wird schließlich erforderlich sein, aber das ist nicht wirklich ein Problem.

Jemand irgendwelche Vorschläge, wie dies zu tun?


Nur ein update:Am Ende mit einem Gemisch von beiden, von Jeff und StompChicken Antworten.

Die Qualität der Informationen, die abgerufen von Wikipedia ist hervorragend, insbesondere, wie (wenig überraschend) sein, es ist so viel relevante Informationen (im Vergleich zu einigen Korpora, wo Begriffe wie "blog" und "ipod" nicht vorhanden ist).

Die Bandbreite der Ergebnisse aus der Wikipedia, ist der beste Teil.Die software ist in der Lage, mit Begriffen wie (Listen Schnitt der Kürze halber):

  • golf:[ball, Bügeleisen, tee, Tasche, club]
  • Fotografie:[Kamera -, film -, Foto -, Kunst -, Bild -]
  • Angeln:[fish, net, hook, trap, bait, lure, rod]

Das größte problem ist die Klassifizierung bestimmter Wörter als physische Artefakte;Standard-WordNet ist keine zuverlässige Quelle, da viele Begriffe (wie "ipod" und auch "Trampolinspringen') nicht existiert.

War es hilfreich?

Lösung

Ich denke, was Sie Fragen für ist eine Quelle der semantische Beziehungen zwischen Konzepten.Für, dass, ich denken kann, eine Reihe von Möglichkeiten, um zu gehen:

  1. Semantische ähnlichkeit algorithmen.Diese algorithmen in der Regel führen Sie einen Baum-zu Fuß über die Beziehungen, die in Wordnet, um zu kommen mit eine reellwertige Punktzahl, wie zwei Verwandte Begriffe sind.Diese werden begrenzt durch, wie gut WordNet Modelle der Konzepte, die Sie interessiert sind in. WordNet::Similarity (die in Perl geschrieben sind) ist ziemlich gut.
  2. Versuchen Sie es mit OpenCyc als knowledge base.OpenCyc ist die open-source-version von Cyc, eine sehr große knowledge base von "real world" -Fakten.Es sollte eine viel reichere Reihe von sematic realtionships als WordNet tut.Allerdings habe ich nie verwendet, OpenCyc, so kann ich nicht sprechen, wie vollständig es ist, oder wie einfach es ist, es zu verwenden.
  3. n-Gramm-Frequenz-Analyse.Wie bereits erwähnt, die von Jeff Moser.Ein datengetriebener Ansatz, der kann 'entdecken' Beziehungen aus großen Mengen von Daten, aber oft kann produzieren lauten die Ergebnisse.
  4. Latente Semantische Analyse.Ein datengesteuerter Ansatz ähnlich wie n-Gramm-Frequenz-Analyse, die feststellt, Sätze semantisch Verwandte Wörter.

[...]

Nach dem, was Sie sagen, Sie wollen zu tun, ich denke, dass die letzten beiden Optionen sind mehr wahrscheinlich, um erfolgreich zu sein.Wenn die Beziehung nicht in Wordnet dann semantischen ähnlichkeit wird nicht funktionieren und OpenCyc scheint nicht viel zu wissen über snooker andere als die Tatsache, dass es existiert.

Ich denke, eine Kombination von sowohl n-Gramm und LSA (oder etwas ähnliches) wäre eine gute Idee sein.N-Gramm-Häufigkeiten finden Konzepte, fest gebunden zu Ihre Ziel-Konzept (z.B.tennis ball) und LSA finden würde, Verwandte Begriffe in einem Satz genannt/Dokument (z.B.net, dienen).Auch, wenn Sie interessiert sind, nur Substantive, filtern Sie Ihre Ausgabe enthält nur Substantive oder Nominalphrasen (mit einem part-of-speech tagger) könnte die Ergebnisse verbessern.

Andere Tipps

Im ersten Fall, Sie sind wahrscheinlich auf der Suche für n-Gramm wo n = 2.Sie können Sie von Orten wie Google oder erstellen Sie Ihr eigenes aus alle Wikipedia.

Für weitere Informationen, check out das zugehörige Stack-Overflow-Frage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top