gpt4 book ai didi

python - 什么是 ngram 计数以及如何使用 nltk 实现?

转载 作者:太空狗 更新时间:2023-10-29 17:15:44 30 4
gpt4 key购买 nike

我读过一篇论文,它使用 ngram 计数作为分类器的特征,我想知道这到底是什么意思。

示例文本:“Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam”

我可以根据此文本创建一元字母组、二元字母组、三元字母组等,我必须在其中定义在哪个“级别”上创建这些一元字母组。 “级别”可以是字符、音节、单词、...

那么从上面的句子中创建 unigrams 只会创建一个包含所有单词的列表?

创建二元组会导致单词对将彼此跟随的单词组合在一起吗?

因此,如果论文谈论 ngram 计数,它只是简单地从文本中创建 unigrams、bigrams、trigrams 等,并计算哪个 ngram 出现的频率?

python的nltk包中有没有现成的方法?还是我必须实现自己的版本?

最佳答案

我找到了我的旧代码,也许它有用。

import nltk
from nltk import bigrams
from nltk import trigrams

text="""Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ornare
tempor lacus, quis pellentesque diam tempus vitae. Morbi justo mauris,
congue sit amet imperdiet ipsum dolor sit amet, consectetur adipiscing elit. Nullam ornare
tempor lacus, quis pellentesque diam"""
# split the texts into tokens
tokens = nltk.word_tokenize(text)
tokens = [token.lower() for token in tokens if len(token) > 1] #same as unigrams
bi_tokens = bigrams(tokens)
tri_tokens = trigrams(tokens)

# print trigrams count

print [(item, tri_tokens.count(item)) for item in sorted(set(tri_tokens))]
>>>
[(('adipiscing', 'elit.', 'nullam'), 2), (('amet', 'consectetur', 'adipiscing'), 2),(('amet', 'imperdiet', 'ipsum'), 1), (('congue', 'sit', 'amet'), 1), (('consectetur', 'adipiscing', 'elit.'), 2), (('diam', 'tempus', 'vitae.'), 1), (('dolor', 'sit', 'amet'), 2), (('elit.', 'nullam', 'ornare'), 2), (('imperdiet', 'ipsum', 'dolor'), 1), (('ipsum', 'dolor', 'sit'), 2), (('justo', 'mauris', 'congue'), 1), (('lacus', 'quis', 'pellentesque'), 2), (('lorem', 'ipsum', 'dolor'), 1), (('mauris', 'congue', 'sit'), 1), (('morbi', 'justo', 'mauris'), 1), (('nullam', 'ornare', 'tempor'), 2), (('ornare', 'tempor', 'lacus'), 2), (('pellentesque', 'diam', 'tempus'), 1), (('quis', 'pellentesque', 'diam'), 2), (('sit', 'amet', 'consectetur'), 2), (('sit', 'amet', 'imperdiet'), 1), (('tempor', 'lacus', 'quis'), 2), (('tempus', 'vitae.', 'morbi'), 1), (('vitae.', 'morbi', 'justo'), 1)]

关于python - 什么是 ngram 计数以及如何使用 nltk 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821201/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com