0
かなり大きな文書を読んで、そこからN-gram(N単語の連続したシーケンス)を抽出したいと思います。私は周波数の昇順でソートしたいと思う。私はこれが単語数の拡張だと理解していますが、私はPysparkでこれを行う方法がわかりません。どんな助けもありがとうございます。このアプローチのPysparkでのNgram頻度ランキング
かなり大きな文書を読んで、そこからN-gram(N単語の連続したシーケンス)を抽出したいと思います。私は周波数の昇順でソートしたいと思う。私はこれが単語数の拡張だと理解していますが、私はPysparkでこれを行う方法がわかりません。どんな助けもありがとうございます。このアプローチのPysparkでのNgram頻度ランキング
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
を使用して修正することができます。