词缀库

dclua的Python项目详细描述


Pypi

declensor库

使用dclua.py库可以训练declension模型和declension单词。这只会替换单词的后缀,以对应您希望单词具有的新形态属性。这里有一些主题可以帮助你理解它是如何工作的。

形态向量

形态向量是决定词素形态特征的向量。每个坐标上的数字决定一些属性。你可以用你的向量来表达你的语言,但这里有一个结构,建议用在乌克兰语。

名词向量

名词向量有两个坐标:[number][case]。这是表格,每一个值的意思是什么。

CoordinateNumberCase
0Nominative
1SingularGenitive
2PluralDative
3Accusative
4Instrumental
5Locative
6Vocative

不定式后缀放在[0][0]

动词向量

名词向量有4个坐标:[tense][person][number][gender]

CoordinateTensePersonNumberGender
0FirstSingularMasculine
1PresentSecondPluralFeminine
2FutureThirdNeutral
3Past

不定式后缀放在[0][0][0][0]

形容词向量

名词向量有3个坐标:[gender][number][person]

CoordinateGenderNumberPerson
0SingularFirst
1MasculinePluralSecond
2FeminineThird
3Neutral

不定式后缀放在[0][0][0]

递减规则

declension规则是一个包含declensed后缀的多维数组,它使用morphology vectors索引。您可以用这种方式为您的单词创建这样的模型:

rule=dclua.DeclenseTrainer.analyze({(0,0):'усмішка',(1,0):'усмішка',(1,1):'усмішки',(1,2):'усмішці',#...(2,6):'усмішки'});

现在规则如下:

rule[0][0]=='ка'rule[1][0]=='ка'rule[1][1]=='ки'rule[1][2]=='ці'#...rule[2][6]=='ки'

每个单词都有其后缀,因此您需要为每个单词创建规则以便将来使用。

analyze方法还接受minsize参数,该参数确定最小生成后缀的大小。

单词递减

一旦你有了不同后缀的model(bundle of rules),你就可以用它们来拒绝单词。语法如下:

Declensor.declense(str word, tuple newmporph, tuple morphology=None)

假设,您有model变量,它包含我们想要的所有后缀的模型。然后您可以按以下方式拒绝单词:

>>>dcl=dclua.Declensor(model)>>>dcl.declense('сонцю',(1,1))<<<'сонця'

给定单词的词法向量将被自动识别,因此在models中找到合适的词法向量模型可能需要一段时间。如果您已经知道要删除的单词的词形,请将其赋给morphology参数:

>>>dcl=dclua.Declensor(model)>>>dcl.declense('сонцю',(1,1),morphology=(1,2))<<<'сонця'

训练您的模型

为了训练您的模型,您可以使用这个目录中template.py中的模板。

推广模型

有时模型中的后缀可能会出现微小的变化。例如,aabaac:只有最后一个字母是不同的。您可以设置字母组(在这种情况下可能会有所不同),并根据这些字母组推广您的模型。使用示例:

>>>dclua.DeclenseTrainer.generalizeModel(...model=[...[["она"],["они"],["онів"]],...[["ова"],["ови"],["овів"]],...],...groups=[...["н","в","п","м"]...],...threshold=.3...)...<<<[...[...[['она'],['они'],['онів']],...[['ова'],['ови'],['овів']],...[['опа'],['опи'],['опів']],...[['ома'],['оми'],['омів']]...]...]

阈值参数是规则数量与该组大小的比值,可以推广到某个组。默认情况下,它等于.3,因此如果有少于.3 * size_of_group的规则,它们就不会被泛化。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓中通过程序禁用消息通知?   Java中的jna处理器乘法器   java Im将图像存储在数据库中,但被替换   java REST到SOAP头   web服务如何在java中使用web服务?   java如何在从Rest控制器返回对象层次结构时使用SpringMVC@JsonView   java SpringApplicationBuilder在与JUnit SpringRunner的集成测试期间未加载   java当您超出“短”范围时会发生什么?   java如何在同一类中的方法中调用构造函数?   java创建不必要的字符串对象   java httpClient连接池管理器validateAfterInactivity   多线程Java是否提供了一个ExecutorService,允许工人在同一线程上执行?   在Java中使用非字符串值创建MongoDB文档   java addView()不显示该视图   JavaTictactoe字符覆盖   java如何使用spark UDF返回复杂类型   java如何在安卓 studio的弹出窗口中添加带滚动的listView?