Создать n-грамм на основе значения в другом столбце для большого набора данных - PullRequest
0 голосов
/ 01 ноября 2018

Мой начальный фрейм данных:

                           text  n_gram_len
0         This is the best text           2
1  This is some other best text           1
2   Well this is something else           3

Желаемый вывод:

                                              n_gram  
0             [This is, is the, the best, best text]  
1                [This, is, some, other, best, text]  
2  [Well this is, this is something, is something...  

Мой код:

from nltk import ngrams
df['n_gram'] = df[['text', 'n_gram_len']].apply(lambda x: [' '.join(x) for x in ngrams(x.text.split(), x.n_gram_len)], axis=1)

Проблема в том, что у меня есть фрейм данных с 100000 строк в нем и длиной, на которую нужно разделить. Мой код работает в течение 50 секунд. Есть ли лучший способ сделать это или повысить эффективность текущего кода.

Как только я делаю n-граммы, я создаю больше значений. Я использую список в качестве структуры данных для хранения n-грамм. Есть ли какой-нибудь другой способ, которым я мог бы хранить, чтобы сократить время обработки?

...