Запрос, связанный со стволом в НЛП - PullRequest
0 голосов
/ 23 сентября 2019

Я работаю над практической задачей, основанной на выполнении в NLP с использованием python.

Ниже приведена задача, которую необходимо выполнить пошагово, чтобы получить результат.

У меня естьзавершено до шага 13 и застрял на шагах № 14 и 15 (см. ниже).

Пожалуйста, помогите мне узнать, как выполнить шаг № 14 и 15.

ЗАДАЧА

  1. Импорт текстового корпуса коричневый .

  2. Извлечение списка слов, связанных с текстовыми коллекциями, относящимися к жанру юмора.Сохраните результат в переменной humor_words .

  3. Преобразуйте каждое слово списка humor_words в нижний регистр и сохраните результат в lc_humor_words .

  4. Найдите список уникальных слов, присутствующих в lc_humor_words .Сохраните результат в lc_humor_uniq_words .

  5. Импортируйте корпус words .

  6. Извлеките списокслов, связанных с корпусными словами.Сохраните результат в переменной wordlist_words .

  7. Найдите список уникальных слов, представленных в wordlist_words .Сохраните результат в wordlist_uniq_words .

  8. Создайте экземпляр PorterStemmer с именем, porter .

  9. Создайте экземпляр LancasterStemmer с именем lancaster .

  10. Соедините каждое слово, присутствующее в lc_humor_uniq_words , с экземпляром переносчика и сохраните результат вlist p_stemmed

  11. Связать каждое слово, присутствующее в lc_humor_uniq_words , с экземпляром lancaster и сохранить результат в listl_stemmed `

  12. Отфильтровать слова из p_stemmed , которые также присутствуют в wordlist_uniq_words .Сохраните результат в p_stemmed_in_wordlist .

  13. Отфильтруйте слова из основы l_stemmed , которые также присутствуют в wordlist_uniq_words .Сохраните результат в l_stemmed_in_wordlist .

  14. Отфильтруйте слова из lc_humor_uniq_words , которые имеют ту же длину, что и соответствующие им слова из стеблей, присутствующие в p_stemmed , а также содержит, по крайней мере, один другой символ из соответствующего слова с основанием.Сохраните результат в списке p_stemmed_diff .

  15. Отфильтруйте слова из lc_humor_uniq_words , которые имеют ту же длину, что и соответствующее слово в стебле, присутствующее в l_stemmed , а также содержит, по крайней мере, один другой символ из соответствующего слова с основанием.Сохранить результат в списке l_stemmed_diff .

  16. Вывести количество слов, присутствующих в p_stemmed_diff .

  17. Выведите количество слов, присутствующих в l_stemmed_diff .

- Ниже приведено слово, которое я выполнил до шага 13.

import nltk

import nltk.corpus

from nltk.corpus import brown

humor_words = brown.words(categories = 'humor')

lc_humor_words = [w.lower() for w in humor_words]

lc_humor_uniq_words = set(lc_humor_words)

from nltk.corpus import words

wordlist_words = words.words()

wordlist_uniq_words = set(wordlist_words)

from nltk.stem import PorterStemmer

porter = PorterStemmer()

from nltk.stem import LancasterStemmer

lancaster = LancasterStemmer()

p_stemmed = []

for word in lc_humor_uniq_words:

    p_stemmed.append(porter.stem(word))

l_stemmed = []

for wordd in lc_humor_uniq_words:

    l_stemmed.append(lancaster.stem(wordd))

p_stemmed_in_wordlist = [word1 for word1 in p_stemmed if word1 in wordlist_uniq_words]

l_stemmed_in_wordlist = [word2 for word2 in l_stemmed if word2 in wordlist_uniq_words]

1 Ответ

0 голосов
/ 26 сентября 2019

Используйте приведенный ниже код для шага 14-17

p_stemmed_diff=[]
for w1,w2 in zip(lc_humor_uniq_words,p_stemmed):
    if len(w1) == len(w2) and w1 != w2:
        p_stemmed_diff.append(w1)
l_stemmed_diff=[]
for w1,w2 in zip(lc_humor_uniq_words,l_stemmed):
    if len(w1) == len(w2) and w1 != w2:
        l_stemmed_diff.append(w1)
print(len(p_stemmed_diff))
print(len(l_stemmed_diff))
...