Можем ли мы создать простой тезаурус из поля в кадре данных? - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь найти синонимы и антонимы для одного слова, используя строки из поля в кадре данных, а не стандартную лексическую базу данных wor dnet .synsets. Я почти уверен, что это возможно, но я не уверен, как указать соответствующий источник данных (мое поле c).

Например, приведенный ниже код работает нормально.

import nltk
from nltk.corpus import wordnet   #Import wordnet from the NLTK
syn = list()
ant = list()
for synset in wordnet.synsets("fake"):
   for lemma in synset.lemmas():
      syn.append(lemma.name())    #add the synonyms
      if lemma.antonyms():    #When antonyms are available, add them into the list
          ant.append(lemma.antonyms()[0].name())
print('Synonyms: ' + str(syn))
print('Antonyms: ' + str(ant))

Я пытался преобразовать поле в массив и использовать это ...

import pandas  as pd
import nltk.corpus
from nltk.corpus import stopwords, wordnet
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer, WordNetLemmatizer

df = pd.read_csv("C:\\my_path\\dataset.csv")
df['review_text'] = df['review_text'].astype(str)
type(df)
df.dtypes

asarray = pd.array(df['review_text'])

import nltk
from nltk.corpus import wordnet   #Import wordnet from the NLTK
syn = list()
ant = list()
for synset in wordnet.asarray('fake'):
   for lemma in df['review_text'].iterrows():
      syn.append(lemma.name())    #add the synonyms
      if lemma.antonyms():        #When antonyms are available, add them into the list
          ant.append(lemma.antonyms()[0].name())
print('Synonyms: ' + str(syn))
print('Antonyms: ' + str(ant))

Когда я запускаю это, я получаю эту ошибку:

AttributeError: 'WordNetCorpusReader' object has no attribute 'asarray'

Поле в кадре данных выглядит следующим образом:

feels comfortable i wear day!
package came end missing box. since it’s gift i update actual fit.
birkenstock amazing shoe!!!! i wish i ten pairs!
delivered advertised.... shoe looks & fits expected. leather color seems bit lighter one seen store, still satisfactory.
second pair i had. nothing beats them.

Это первые 5 строк. Может быть, проблема связана с этой вещью (не уверен): it’s

1 Ответ

0 голосов
/ 19 февраля 2020

Это опечатка или что-то в этом роде.

Ошибка возникает при:

for synset in wordnet.asarray('fake'):

Где WOR dnet является объектом из nltk.corpus, таким образом, WordNetCorpusReader

И перед для * oop, у вас есть

asarray = pd.array(df['review_text'])

, который считывает массив / серию Pandas в переменную asarray. Но это не относится к WordNetCorpusReader

...