Неразборчивый тип: ошибка списка для стоп-слов - PullRequest
0 голосов
/ 10 декабря 2018

Вот мой код

URL-адрес CSV-файла: https://github.com/eugeneketeni/web-mining-final-project/blob/master/Test_file.csv

import pandas as pd

data = pd.read_csv("https://raw.githubusercontent.com/eugeneketeni/web- 
mining-final-project/master/Test_file.csv")

import nltk
from nltk import word_tokenize, sent_tokenize


data['text'] = data.loc[:, 'text'].astype(str)

text = data.loc[:, "text"].astype(str)
tokenizer = [word_tokenize(text[i]) for i in range(len(text))]
print(tokenizer)

filtered_sentence = []


from nltk.corpus import stopwords
stopwords = set(stopwords.words('english'))

filtered_sentence = [w for w in tokenizer if not w in stopwords]
print(filtered_sentence) 

Мой токенайзер работает, но когда я пытаюсь удалить стоп-слова по умолчанию, я получаю «неиссякаемый тип»:Ошибка «список»Я не уверен, что на самом деле происходит.Буду признателен за любую помощь.Спасибо.

1 Ответ

0 голосов
/ 10 декабря 2018

TL; DR

from nltk import word_tokenize
from nltk.corpus import stopwords

import pandas as pd

stoplist = set(stopwords.words('english'))

data = pd.read_csv("Test_file.csv")

data['filtered_text'] = data['text'].astype(str).apply(lambda line: [token for token in word_tokenize(line) if token not in stoplist])

В длинных

Пожалуйста, смотрите Почему моя функция NLTK работает медленно при обработке DataFrame? для более подробного объяснения:

  • токенизация текста в кадре данных
  • удаление стоп-слов
  • другие связанные процессы очистки

Для лучшей обработки текста в Твиттере

pip3 install -U nltk[twitter]

Затем используйте это:

из nltk.corpus import stopwords

from nltk.tokenize import TweetTokenizer

import pandas as pd

word_tokenize = TweetTokenizer().tokenize

stoplist = set(stopwords.words('english'))

data = pd.read_csv("Test_file.csv")

data['filtered_text'] = data['text'].astype(str).apply(lambda line: [token for token in word_tokenize(line) if token not in stoplist])
...