gpt4 book ai didi

python - Pyspark 中的 Ngram 频率排名

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:01 24 4
gpt4 key购买 nike

我想阅读一个相当大的文档并从中提取 N-gram(N 个单词的连续序列)。我还想按频率升序对其进行排序。虽然我知道这是字数统计的扩展,但我不确定如何在 Pyspark 中执行此操作。任何帮助表示赞赏。

最佳答案

一种可能的解决方案是 toolz

from toolz.curried import sliding_window
from operator import add, itemgetter

rdd = sc.textFile("README.md")
tokens = rdd.map(str.split)

counts = (tokens
.flatMap(sliding_window(3))
.map(lambda x: (x, 1))
.reduceByKey(add))

counts.top(3, key=itemgetter(1))

## [(('command,', 'which', 'should'), 2),
## (('on', 'how', 'to'), 2),
## (('Please', 'refer', 'to'), 2)]

这种方法的局限性与通常的情况几乎相同 - 它是逐行运行的,因此如果文档跨越多行,您将不会获得跨越行边界的 n 元语法。

可以通过跟踪行号和行中位置或使用 wholeTextFiles 来纠正此问题。

关于python - Pyspark 中的 Ngram 频率排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613497/

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