Интеллектуальный анализ текста, настройка лемматизации - PullRequest
0 голосов
/ 17 января 2019

Простой DataFrame, и я применяю к нему лемматизацию.

Некоторые слова остались без изменений, поэтому я ищу, если умный способ настроить лемматизацию.

import pandas as pd

samples = ["mike discussed the project",
       "kate visited jack",
       "tom received greetings",
       "let them discuss",
       "regular visits"]

train = pd.DataFrame(samples)

train[0] = train[0].apply(lambda x: " ".join(x.lower() for x in x.split()))

# Lemmatization
from textblob import Word
train[0] = train[0].apply(lambda x: " ".join([Word(word).lemmatize() for word in x.split()]))

freq = pd.Series(' '.join(train[0]).split()).value_counts()

print freq.to_string()

Вывод:

kate         1
them         1
the          1
visited      1
visit        1
tom          1
jack         1
let          1
regular      1
project      1
greeting     1
discussed    1
discus       1
mike         1
received     1

Некоторые слова остались без изменений: посещены, обсуждены, получены (и «обсуждение» было изменено на «диск»)

Я могу добавить строки ниже до лемматизации.

Но какой способ лучше? Можно ли настроить лемматизацию?

# train[0] = train[0].str.replace('discussed', 'discuss')
# train[0] = train[0].str.replace('visited', 'visit')
# train[0] = train[0].str.replace('received', 'receive')

Кстати, попробовал WordNetLemmatizer от NLTK, он такой же. и я прочитал Python NLTK Лемматизация слова «далее» с помощью wordnet , но все еще не имею понятия.

...