Nig*_*olf 6 python java nlp text-mining wordnet
我希望使用WordNet从一组基本术语中寻找类似术语的集合.
例如,"劝阻"这个词- 潜在的同义词可能是:daunted, glum, deterred, pessimistic.
我还想确定潜在的双克,如; beat down, put off, caved in等等
如何使用Java或Python提取此信息?是否有任何托管的WordNet数据库/ Web界面可以进行此类查询?
谢谢!
小智 3
通过查看 Prolog 文件来理解 WordNet 数据是最容易的。它们记录在这里:
http://wordnet.princeton.edu/wordnet/man/prologdb.5WN.html
WordNet 术语被分为同义词集。同义词集是最大同义词集。同义词集有一个主键,因此可以在语义关系中使用它们。
因此,回答你的第一个问题,你可以列出一个单词的不同含义和相应的同义词,如下所示:
Input X: Term
Output Y: Sense
Output L: Synonyms in this Sense
s_helper(X,Y) :- s(X,_,Y,_,_,_).
?- setof(H,(s_helper(Y,X),s_helper(Y,H)),L).
Run Code Online (Sandbox Code Playgroud)
例子:
?- setof(H,(s_helper(Y,'discouraged'),s_helper(Y,H),L).
Y = 301664880,
L = [demoralised, demoralized, discouraged, disheartened] ;
Y = 301992418,
L = [discouraged] ;
No
Run Code Online (Sandbox Code Playgroud)
对于问题的第二部分,WordNet 术语是单词序列。因此,您可以在 WordNet 术语中搜索单词,如下所示:
Input X: Word
Output Y: Term
s_helper(X) :- s(_,_,X,_,_,_).
word_in_term(X,Y) :- atom_concat(X,' ',H), sub_atom(Y,0,_,_,H).
word_in_term(X,Y) :- atom_concat(' ',X,H), atom_concat(H,' ',J), sub_atom(Y,_,_,_,J).
word_in_term(X,Y) :- atom_concat(' ',X,H), sub_atom(Y,_,_,0,H).
?- s_helper(Y), word_in_term(X,Y).
Run Code Online (Sandbox Code Playgroud)
例子:
?- s_helper(X), word_in_term('beat',X).
X = 'beat generation' ;
X = 'beat in' ;
X = 'beat about' ;
X = 'beat around the bush' ;
X = 'beat out' ;
X = 'beat up' ;
X = 'beat up' ;
X = 'beat back' ;
X = 'beat out' ;
X = 'beat down' ;
X = 'beat a retreat' ;
X = 'beat down' ;
X = 'beat down' ;
No
Run Code Online (Sandbox Code Playgroud)
这将为您提供潜在的 n 元语法,但没有太多的形态变化。WordNet 确实还展示了一些可能有用的词汇关系。
但我给出的两个 Prolog 查询都不是很有效。问题是缺少一些单词索引。Java 实现当然可以实现更好的东西。想象一下:
class Synset {
static Hashtable<Integer,Synset> synset_access;
static Hashtable<String,Vector<Synset>> term_access;
}
Run Code Online (Sandbox Code Playgroud)
有些 Prolog 可以做同样的事情,通过索引指令,可以指示 Prolog 系统对谓词的多个参数进行索引。
无论是用 Java 还是 Prolog,建立一个 Web 服务应该不那么困难。许多 Prologs 系统很容易允许将 Prolog 程序嵌入到 Web 服务器和 Java 冠军 servlet 中。
支持 Web 服务器的 Prolog 列表可以在这里找到:
此致
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |