我很高兴地宣布发布了我的第一个Python包装, englishidioms
。该软件包是一个强大的工具,用于识别句子中的英语习语,短语和短语动词,其数据库为22,209个唯一表达式。
背景:作为个人自然语言处理(NLP)项目的一部分,我发现需要一个能够识别英语句子中惯用表达式的Python软件包。令我惊讶的是,我找不到合适的解决方案,因此我决定从头开始建造一个解决方案。
安装:您可以使用pip轻松安装软件包: pip install englishidioms
如何使用它:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
争论
sentence
(str) - 您要分析的英文句子(必需)。limit
(int) - 由匹配点(默认值:10)排序的最大结果数。html
(bool) - html标记中的返回短语和定义以保留字典中的原始格式(默认值:false)。span
(bool) - 句子中的返回匹配跨度(默认:false)。entry_range
bool) - 返回字典开始/结束行进行调试(默认:false)。entry_id
(bool) - 返回短语中的字典条目ID.json进行调试(默认:false)。它的工作原理(简化):
该包装是通过在“美国成语和短语动词的麦格劳 - 希尔词典”中解析所有字典条目开发的。通过使用Python库,例如Python-docx和利用预定义的格式,我从每个条目中提取了关键点。这些要点包括:
常数:固定构成惯用表达的核心的单词类别。变量:可以广泛匹配的单词的变量类。可选常数:单个惯用表达式中的其他可选单词或短语。动词:通常在惯用短语之前的动词。
例如,考虑字典条目:
*(对某人) (死)铃声。外观与其他人非常相似。 (*通常:be〜;看起来像〜。)_ _您确定我兄弟的死铃是。 _他不是查克的铃声吗?
对于此条目,我们确定:
通过每个调用“ Find_idioms”方法,搜索算法在22,209个字典条目中检查了这些关键点,并考虑了语法变化和单词顺序,并将它们与给定句子匹配。然后,它返回匹配条目的列表。
表现:
我对本书的40,442个句子进行了测试,并在91%的情况下检测到了正确的匹配词典条目。此外,处理句子的平均执行时间约为3秒。
项目详细信息
该项目分为几个关键步骤:
1。获取数据:
我们首先从“美国成语和短语动词的McGraw-Hill词典”中获取源材料。您可以在此处以PDF格式访问此资源的副本。
接下来,我们将PDF转换为更可用的格式,即DOCX文档,称为“ clean-out-output.docx”。我们将其从两列布局重新格式化为单列文本。请注意,此文档中未讨论此转换过程的技术细节。
2。准备数据:
我们经过一系列十二个步骤来处理并从'clean-out-output.docx'中完善数据,然后将其保存在'pherase.json。每个步骤均由特定的Python模块管理:
在指定顺序中运行这些模块很重要,以创建最终版本的“ phrases.json”,这是来自'clean-out-output.docx的数据的综合数据库。在Windows CMD上,您可以使用此命令顺序运行它们:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3。核心功能:
项目的核心是“ l_algorithm.py”模块。它利用“ epers.json”将惯用表达式与英语句子匹配。该模块对于软件包至关重要,可以识别句子中的习语,短语和短语动词。
该项目的核心是位于“ EnglishIdioms”目录中的“ L_ALGORITHM.PY”模块。它利用“ epers.json”将惯用表达式与英语句子匹配。将“ l_algorithm.py”和“ phrases.json”保持在“英语”目录中的双重目的:
缩小的包装尺寸:通过隔离这些核心组件,我们将包装在磁盘空间方面较小。这意味着用户只需要安装基本组件,就可以使软件包更轻巧和高效。
最小化的依赖性:与整个软件包相比,“ l_algorithm.py”和“ phrases.json”组合需要更少的外部依赖项。这简化了最终用户的安装过程,减少了安装其他库和要求的需求,而这些库和要求对于它们的特定用法可能不是必需的。
“英语”目录还包括运行“ l_algorithm.py”所需的三个必要的NLTK资源。
通过采用这种简化的方法,我们确保用户可以快速轻松地访问包装的核心功能,而无需任何不必要的开销。
4。检查和测试:
为了确保“ l_algorithm.py”中的数据质量和搜索算法的有效性,我们使用三个其他模块:
请注意,对于希望使用该软件包的最终用户,仅需要“ l_algorithm.py”和“ phrases.json”。其他模块主要用于开发过程中的数据处理和验证。
如何贡献:
整个项目都是开源的,在GitHub上可用。随时探索代码,改进并为其开发做出贡献。
免责声明:此Python软件包旨在为用户提供访问成语和短语动词的访问,因为它们出现在“美国成语和短语动词”中的“ McGraw-Hill词典”中。请注意,该软件包未经词典的版权持有人McGraw-Hill Companies,Inc。认可或授权。
版权通知: “美国成语和短语动词的麦格劳 - 希尔词典”是版权的材料,其使用符合McGraw-Hill Companies,Inc。的版权术语。此软件包依赖于从个人副本中得出的内容这本书。
预期用途:此Python软件包仅用于教育和研究目的,以及个人非商业用途。它不打算用于商业应用。
用户责任:通过使用此Python软件包,您必须承认您必须遵守版权法和原始工作中概述的使用条款。您只能将此软件包用于个人,非商业目的。任何商业应用程序或本包输出的分发都可能需要出版商McGraw-Hill Companies,Inc。的事先书面同意。强烈鼓励打算定期使用此软件包的用户考虑购买自己的个人副本“美国成语和短语动词的麦格劳 - 希尔词典”,以支持作者并遵守版权法。
支持作者:如果您打算将此包装的内容用于商业目的,我强烈建议您从McGraw-Hill Companies,Inc。获得必要的权限和许可证,以访问一系列的成语和Phrasal动词,请考虑购买您自己的个人副本“美国成语和短语动词的McGraw-Hill词典”。
责任:此Python包的创建者和维护者不得对侵犯版权或滥用包裹的任何责任负责。使用此软件包时,用户负责遵守所有法律和版权要求。
我鼓励对该包的道德和合法使用,尊重版权持有人和作者的权利。请负责任地使用它。