欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网

发布时间:2024/3/13 python 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

lemminflect

一个用于英文引理和屈折的python模块。

关于

lemminflect使用字典方法对英语单词进行柠檬化,并将其屈折成用户提供的格式通用依赖项或penn treebank标记。该库通过应用神经网络技术对单词形式进行分类并选择适当的变形规则来处理词汇表外(oov)单词。

该系统充当独立模块或SPAcy的扩展。nlp系统。

词典和词法规则来自于nih的专业词典,其中包含了大量关于英语单词形式的信息。

一个更简单的仅限屈折变化的系统可用作pyinlect。创建lemminflect是为了解决该项目的一些缺点并添加一些功能,例如…独立于Spacy Lemmatizer

用神经网络消除词法中的歧义

取消拼写和多个单词形式的Unigrams

文档

有关最新的文档,请参见阅读文档。

柠檬汁的准确度

lemminflect和其他几个流行的nlp实用程序的准确性是使用自动生成的屈折变化数据库(agid)作为基线进行测试的。agid有大量的引理及其相应的屈折变化。每一个词形变化都由测试软件进行元素化,然后与语料库中的原始值进行比较。测试包括119194个不同的屈折词。| Package | Verb | Noun | ADJ/ADV | Overall | Speed |

|----------------------------------------------------------------|

| LemmInflect | 96.1% | 95.4% | 93.9% | 95.6% | 42.0 uS |

| CLiPS/pattern.en | 93.6% | 91.1% | 0.0% | n/a | 3.0 uS |

| Stanford CoreNLP | 87.6% | 93.1% | 0.0% | n/a | n/a |

| spaCy | 79.4% | 88.9% | 60.5% | 84.7% | 5.0 uS |

| NLTK | 53.3% | 52.2% | 53.3% | 52.6% | 13.0 uS |

|----------------------------------------------------------------|速度以微秒/引理为单位,在I9-7940x CPU上进行。

Stanford和Clips Lemmatizers不接受词性信息,在模式的情况下,这些方法是专门为动词设置的,而不是为所有单词类型设置的。

Stanford CalnLp ReMaMurZER是一个Java包,通过内置的HTML服务器进行测试,因此速度测量无效。

要求和安装

运行lemminflect的唯一外部需求是numpy,它用于驱动神经网络的矩阵数学。这些网络相对较小,运行时不需要很大的CPU功率。

要安装,请执行..

pip3安装lemminflect

该项目是在python 3和ubuntu下构建和测试的,但是应该在任何linux、windows、mac等平台上运行。系统。它在Python2下未经测试,但可以在该环境中运行,只需很少的更改或不做任何更改。

代码库还包括库函数和脚本,用于创建各种数据文件和神经网络。这包括……从古腾堡和十亿字corpra中提取单字

用于加载和解析专业词典的python脚本

基于keras和tensorflow的神经网络训练

这些都不是运行时操作所必需的。但是,如果您想修改系统,请参阅文档了解更多信息。

库使用

要对单词进行元素化,请使用方法getlemma()。这需要一个单词和一个通用依赖项标记,并返回引理作为可能的拼写列表。首先使用字典系统,如果没有找到引理,则规则系统已启用。> from lemminflect import getLemma

getLemma('watches', upos='VERB')

('watch',)

要对单词进行屈折,请使用方法getinflection。这需要引理和penn treebank标记,并返回与该标记关联的特定屈折变化的元组。与以上类似,首先使用字典,然后根据需要应用屈折变化规则。> from lemminflect import getInflection

> getInflection('watch', tag='VBD')

('watched',)

> getInflection('xxwatch', tag='VBD')

('xxwatched',)

库提供了较低级别的函数来直接访问字典和oov规则。有关详细说明,请参见柠檬味剂或屈折变化

用作Spacy扩展名

要用作扩展,您需要Spacy2.0或更高版本。1.9及更早版本不支持此处使用的扩展方法。

要设置扩展,请首先导入lemminflect。这将为每个spacytoken创建新的引理和inflect方法。这些方法的操作与上述方法类似,但返回的字符串包含最常见的拼写,而不是元组。> import spacy

> import lemminflect

> nlp = spacy.load('en_core_web_sm')

> doc = nlp('I am testing this example.')

> doc[2]._.lemma()

test

> doc[4]._.inflect('NNS')

examples

问题

如果发现错误,请在github问题列表中报告。但是要注意,在返回正确的屈折变化时,可能会出现许多不同类型的问题。有些是不容易修复的。屈折形式的问题包括…屈折变化的多重拼写法(如。关节成形术,关节成形术或关节成形术)

质量形式和复数类型(即人与人)

依赖于上下文的形式(如…进一步与进一步)

标签未完全指定的感染(即…be/vbd可以是"was"或"was")

一个常见的问题是,某些形式的动词"be"并没有完全由treekbank标记指定。例如be/vbd屈折为"was"或"was",be/vbp屈折为"am"或"are"。为了消除这些形式的歧义,需要检查句子中的其他单词。此时,lemminflect不包含此功能。

欢迎加入QQ群-->: 979659372

推荐PyPI第三方库

总结

以上是生活随笔为你收集整理的inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。