У меня есть данные отзывов пользователей Amazon в формате JSON, которые я импортирую в фреймворк данных pandas и использую его для обучения модели для классификации текста. Я пытаюсь предварительно обработать текст отзыва пользователя перед обучением модели с этими данными. У меня тут два вопроса:
1) Я написал код для определения его языка, используя библиотеку Textblob в Python, которая работает нормально, но требует много времени. Скажите, пожалуйста, может ли быть оптимальный подход. Я использую библиотеку Textblob в python, и код:
from textblob import TextBlob
def detect_language(text):
if len(text)>3:
r=TextBlob(text)
lang = r.detect_language()
return lang
dataset['language']=dataset.reviewText.apply(lambda x: detect_language(x))
2) Я хочу лемматизировать свои слова перед обучением модели. Но поскольку лемматизация в NLTK будет работать правильно, если у нас есть части речи, помеченные словами, я пытаюсь сделать это следующим образом, но получаю некоторую ошибку:
from nltk import pos_tag
from nltk.stem import WordNetLemmatizer
text='my name is shubham'
text=pos_tag(text.split())
wl=WordNetLemmatizer()
for i in text:
print(wl.lemmatize(i))
Здесь я получаю сообщения, помеченные как:
[('my', 'PRP$'), ('name', 'NN'), ('is', 'VBZ'), ('shubham', 'JJ')]
и при выполнении лемматизации я получаю сообщение об ошибке:
AttributeError: 'tuple' object has no attribute 'endswith'
Не могли бы вы предложить эффективный способ выполнения лемматизации. Вот мои примеры данных, на которых я выполняю определение языка и лемматизацию:
overall reviewText
5 Not much to write about here, but it does exac...
5 The product does exactly as it should and is q...
5 The primary job of this device is to block the...
5 Nice windscreen protects my MXL mic and preven...
5 This pop filter is great. It looks and perform...
print(wl.lemmatize(i))
. Я попытался напечатать i и узнал, что он выдает ошибку для самого первого слова, то есть («мой», «PRP $»). - person Shubham Singh   schedule 07.02.2018