生成英语单词的所有可能形式。
项目描述
准确生成英语单词的所有可能形式
Word forms可以准确生成英语单词的所有可能形式。它可以进行动词的词形变化。它可以连接不同的词性,例如名词到形容词、形容词到副词、名词到动词等。它可以复数化单数名词。它全部在一个函数中完成。请享受吧!
示例
一些非常及时性的示例 :-P
>>> from word_forms.word_forms import get_word_forms
>>> get_word_forms("president")
>>> {'n': {'presidents', 'presidentships', 'presidencies', 'presidentship', 'president', 'presidency'},
'a': {'presidential'},
'v': {'preside', 'presided', 'presiding', 'presides'},
'r': {'presidentially'}}
>>> get_word_forms("elect")
>>> {'n': {'elects', 'electives', 'electors', 'elect', 'eligibilities', 'electorates', 'eligibility', 'elector', 'election', 'elections', 'electorate', 'elective'},
'a': {'eligible', 'electoral', 'elective', 'elect'},
'v': {'electing', 'elects', 'elected', 'elect'},
'r': set()}
>>> get_word_forms("politician")
>>> {'n': {'politician', 'politics', 'politicians'},
'a': {'political'},
'v': set(),
'r': {'politically'}}
>>> get_word_forms("am")
>>> {'n': {'being', 'beings'},
'a': set(),
'v': {'was', 'be', "weren't", 'am', "wasn't", "aren't", 'being', 'were', 'is', "isn't", 'been', 'are', 'am not'},
'r': set()}
>>> get_word_forms("ran")
>>> {'n': {'run', 'runniness', 'runner', 'runninesses', 'running', 'runners', 'runnings', 'runs'},
'a': {'running', 'runny'},
'v': {'running', 'run', 'ran', 'runs'},
'r': set()}
>>> get_word_forms('continent', 0.8) # with configurable similarity threshold
>>> {'n': {'continents', 'continency', 'continences', 'continent', 'continencies', 'continence'},
'a': {'continental', 'continent'},
'v': set(),
'r': set()}
如您所见,输出是一个包含四个键的字典。"r"代表副词,"a"代表形容词,"n"代表名词,"v"代表动词。不要问我为什么"r"代表副词。这是WordNet使用的,因此我也使用它 :-)
可以通过键入以下内容在任何时间获得帮助
>>> help(get_word_forms)
为什么?
在自然语言处理和搜索中,人们经常需要将“run”和“ran”、“love”和“lovable”或“politician”和“politics”等单词视为同一个单词。这通常是通过算法将每个单词减少到基词然后比较基词来完成的。这个过程称为词干提取。例如,Porter词干提取器将“love”和“lovely”都减少到基词“love”。
词干提取器存在几个缺点。首先,词干提取器生成的基词不总是有效的英语单词。例如,Porter词干提取器将单词"operation"缩减为"oper"。其次,词干提取器具有较高的误判率。例如,"run"被缩减为"run",而"ran"也被缩减为"ran"。这是因为词干提取器使用一组合理的规则来查找基词,而众所周知,英语语言并不总是非常理性。
词元化器比词干提取器更准确,因为它们产生的基词是词典中存在的(也称为词元)。因此,缩减后的单词总是有效的英语单词。然而,词元化器也存在误判,因为它们不擅长连接不同词性的单词。NLTK附带的WordNet词元化器在这些例子中几乎都失败了。"operations"被缩减为"operation",而"operate"被缩减为"operate"。
Word Forms通过找到给定英语单词的所有可能形式来解决此问题。它可以执行动词变位、将名词形式与动词形式、形容词形式、副词形式连接,以及将单数形式变为复数形式等。
额外功能:简单的词元化器
我们还提供了一个基于word_forms
的非常简单的词元化器。以下是使用方法。
>>> from word_forms.lemmatizer import lemmatize
>>> lemmatize("operations")
'operant'
>>> lemmatize("operate")
'operant'
享受吧!
兼容性
在Python 3上进行了测试
安装
使用pip
pip install -U word_forms
从源代码
或者您可以从源代码安装它
- 克隆仓库
git clone https://github.com/gutfeeling/word_forms.git
- 使用
pip
或setup.py
安装
pip install -e word_forms
% or
cd word_forms
python setup.py install
致谢
维护者
嗨,我是Dibya,我维护这个仓库。我很乐意听到您的意见。您可以通过dibyachakravorty@gmail.com与我联系。
贡献者
- Tom Aarsen @CubieDev是主要贡献者,并单独负责v2.0.0。
- Sajal Sharma @sajal2692是主要贡献者。
贡献
Word Forms并不完美。特别是,有一些方面可以改进。
- 有时它会生成非词典单词,如"runninesses",因为复数化/单数化算法并不完美。目前,我正在使用inflect。
如果您喜欢这个包,请随时贡献。您的拉取请求非常受欢迎。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建发行版
word_forms-2.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 24df11f8db1a1305fa386689a080cfcd2e14458c4f31dde262c7938a45b87f74 |
|
MD5 | 6801c9a327ebdbdda03463254b1e2c23 |
|
BLAKE2b-256 | 3139e0f24b7c3f228561b346ae8c046817ff3d3929d77b0c3ca14a12e4d106b2 |
word_forms-2.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a693d2f6497af6006f350030ff67c925b2745de7a0dae6f0bb06075828cee83c |
|
MD5 | 866efab19d61e4e740ae643a2d73bfb1 |
|
BLAKE2b-256 | 1b7f5c6cf433fff3ed696e366ed8fd6e4e6bafb9477be0c4e862510ee4d9b3f9 |