Пары двух последовательных слов pyspark - PullRequest
0 голосов
/ 20 мая 2018

Я работаю над моделью языка и хочу посчитать пары чисел двух последовательных слов.Я нашел примеры такой проблемы на scala с slicing функцией.Хотя мне не удалось найти аналогию в pyspark

data.splicing(2).map(lambda (x,y): ((x,y),1).redcueByKey(lambda x,y: x+y)

Полагаю, что-то вроде этого.Обходным решением может быть создание функции, которая находит следующее слово в массиве, но я думаю, что должно быть встроенное решение.

1 Ответ

0 голосов
/ 20 мая 2018

Может быть, это поможет.Вы можете найти другие методы разделения здесь: Есть ли способ разделить строку на каждый n-й разделитель в Python?

from itertools import izip

text = "I'm working on language model and want to count the number pairs of two consequent words.\
        I found an examples of such problem on language model and want to count the number pairs"

i = iter(text.split())

rdd = sc.parallelize([" ".join(x) for x in izip(i,i)])

print rdd.map(lambda x: (x, 1)).reduceByKey(lambda x, y: x + y).collect()

[('found an', 1), ('считать', 2), ('хочу', 2), ('примеры', 1), ('модель и', 2), ('на языке', 2), ('пары чисел', 2), ("Я работаю", 1), ("последовательные слова. I", 1), ("такая проблема", 1), ("из двух", 1)]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...