Suche Verwandte Wörter (insbesondere physische Objekte) zu einem bestimmten Wort
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.
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:
- 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.
- 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.
- 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.
- 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.