此模块包含低级函数和高级类,用于将wordnet prolog下载的prolog文件“wn_s.pl”解析为适合查找同义词和执行查询扩展的对象。
http://wordnetcode.princeton.edu/3.0/WNprolog-3.0.tar.gz
whoosh.lang.wordnet.
Thesaurus
¶表示WordNet同义词数据库,要么从wn_s.pl prolog文件加载到内存中,要么存储在磁盘上的whoosh索引中。
此类允许您将prolog文件“wn_s.pl”从wordnet prolog download解析为适合查找同义词和执行查询扩展的对象。
http://wordnetcode.princeton.edu/3.0/WNprolog-3.0.tar.gz
从wn_s.pl文件加载同义词库对象…
>>> t = Thesaurus.from_filename("wn_s.pl")
要将内存中的同义词库保存到whoosh索引中…
>>> from whoosh.filedb.filestore import FileStorage
>>> fs = FileStorage("index")
>>> t.to_storage(fs)
从whoosh索引加载同义词库对象…
>>> t = Thesaurus.from_storage(fs)
因此,同义词库对象可以通过两种方式使用:
以下是我的(快速)Windows机器上各种任务的时间安排,这可能给出内存与磁盘的相对成本。
任务 | 大约时间 |
---|---|
正在分析wn_s.pl文件 | 1.045 |
保存到磁盘索引 | 13.084 |
从磁盘索引加载 | 0.082 |
查找“light”的同义词(在内存中) | 0.0011 |
查找“light”的同义词(从磁盘加载) | 0.0028 |
基本上,如果你能花足够的内存来解析同义词库,然后缓存它,那么速度会更快。否则,请使用磁盘索引。
from_file
(fileobj)¶从给定的类似文件的对象创建同义词库对象,该对象应包含wordnet wn_s.pl文件。
>>> f = open("wn_s.pl")
>>> t = Thesaurus.from_file(f)
>>> t.synonyms("hail")
['acclaim', 'come', 'herald']
from_filename
(filename)¶从给定的文件名创建同义词库对象,该文件应包含wordnet wn's.pl文件。
>>> t = Thesaurus.from_filename("wn_s.pl")
>>> t.synonyms("hail")
['acclaim', 'come', 'herald']
from_storage
(storage, indexname='THES')¶从给定的存储对象创建同义词库对象,该对象应包含同义词库.to_storage()创建的索引。
>>> from whoosh.filedb.filestore import FileStorage
>>> fs = FileStorage("index")
>>> t = Thesaurus.from_storage(fs)
>>> t.synonyms("hail")
['acclaim', 'come', 'herald']
参数: |
|
---|
synonyms
(word)¶返回给定单词的同义词列表。
>>> thesaurus.synonyms("hail")
['acclaim', 'come', 'herald']
to_storage
(storage, indexname='THES')¶根据从WordNet文件加载的同义词在给定存储对象中创建AM索引。
>>> from whoosh.filedb.filestore import FileStorage
>>> fs = FileStorage("index")
>>> t = Thesaurus.from_filename("wn_s.pl")
>>> t.to_storage(fs)
参数: |
|
---|
whoosh.lang.wordnet.
parse_file
(f)¶分析wordnet wn_s.pl prolog文件并返回两个字典:word2nums和num2words。
whoosh.lang.wordnet.
synonyms
(word2nums, num2words, word)¶使用word2nums和num2words dicts查找给定单词的同义词。返回同义词字符串列表。
whoosh.lang.wordnet.
make_index
(storage, indexname, word2nums, num2words)¶在给定的存储对象中创建一个whoosh索引,其中包含取自word2nums和num2words的同义词。返回索引对象。