gpt4 book ai didi

python - 如何在python中使用nltk找到特定的bigram?

转载 作者:行者123 更新时间:2023-12-03 20:47:34 25 4
gpt4 key购买 nike

我目前正在使用 nltk.book iny Python,并想找到特定二元组的频率。我知道有一个 bigram() 函数可以为您提供文本中最常见的 bigrams,如以下代码所示:

    >>> list(bigrams(['more', 'is', 'said', 'than', 'done']))
[('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]
>>>
但是如果我只搜索一个特定的,比如“wish for”呢?到目前为止,我在 nltk 文档中找不到任何关于此的信息。

最佳答案

如果您可以返回元组列表,则可以使用 in :

>>> bgrms = [('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]
>>> ('more', 'is') in bgrms
True
>>> ('wish', 'for') in bgrms
False
然后,如果您正在寻找特定二元组的频率,构建一个计数器可能会有所帮助:
from nltk import bigrams
from collections import Counter

bgrms = list(bigrams(['more', 'is', 'said', 'than', 'wish', 'for', 'wish', 'for']))

bgrm_counter = Counter(bgrms)

# Query the Counter collection for a specific frequency:
print(
bgrm_counter.get(tuple(["wish", "for"]))
)
输出:
2
最后,如果您想根据可能的双字数来理解这个频率,您可以除以可能的双字数:
# Divide by the length of `bgrms`

print(
bgrm_counter.get(tuple(["wish", "for"])) / len(bgrms)
)
输出:
0.2857142857142857

关于python - 如何在python中使用nltk找到特定的bigram?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64835357/

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