python词性统计,python – 统计句建议模型,如拼写检查

已有拼写检查模型可帮助我们根据经过训练的正确拼写语料库找到建议的正确拼写.可以将粒度从字母表增加到“单词”,这样我们就可以得到偶数短语建议,这样如果输入了错误的短语,那么它应该从正确短语的语料库中建议最接近的正确短语,当然它是从有效短语列表.

是否有任何python库已经实现此功能或如何为现有的大型黄金标准短语语料库进行此操作以获得统计相关的建议?

注意:这与拼写检查器不同,因为拼写检查器中的字母是有限的,而在短语中,字母表本身就是一个单词,因此理论上是无限的,但我们可以限制短语库中的单词数量.

解决方法:

你想要构建的是一个N-gram模型,它包括计算每个单词遵循n个单词序列的概率.

您可以使用NLTK text corpora来训练模型,也可以使用nltk.sent_tokenize(text)和nltk.word_tokenize(句子)来标记自己的语料库.

你可以考虑2克(马尔可夫模型):

What is the probability for “kitten” to follow “cute”?

…或3克:

What is the probability for “kitten” to follow “the cute”?

等等

显然,训练n-1克的模型比n-gram更昂贵.

而不是考虑单词,你可以考虑其中pos是词性标签的夫妻(单词,pos)(你可以使用nltk.pos_tag(tokens)获得标签)

您也可以尝试考虑引理而不是单词.

这里有一些关于N-gram建模的有趣讲座:

这是一个简单而简短的代码示例(2-gram)未优化:

from collections import defaultdict

import nltk

import math

ngram = defaultdict(lambda: defaultdict(int))

corpus = "The cat is cute. He jumps and he is happy."

for sentence in nltk.sent_tokenize(corpus):

tokens = map(str.lower, nltk.word_tokenize(sentence))

for token, next_token in zip(tokens, tokens[1:]):

ngram[token][next_token] += 1

for token in ngram:

total = math.log10(sum(ngram[token].values()))

ngram[token] = {nxt: math.log10(v) - total for nxt, v in ngram[token].items()}

标签:python,nlp,text,nltk,phrases

来源: https://codeday.me/bug/20191006/1858719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值