Предварительная обработка текста Python - PullRequest
0 голосов
/ 25 марта 2020

У меня есть текстовый ввод = 'Быстрая коричневая лиса. Перепрыгнул через ленивую собаку. И я хочу, чтобы результат был следующим:

[['quick', 'brown', 'fox', '.'], ['Jumped', 'lazy', 'dog', '. ']]

Пожалуйста, дайте мне знать, как это сделать.

Я просто разбил предложение на слова, но не уверен, что делать дальше?

import nltk 
from nltk.tokenize import word_tokenize 

input="The quick brown fox. Jumped over the lazy dog." 
tokens=word_tokenize(input) 
print(tokens)

1 Ответ

0 голосов
/ 25 марта 2020

Есть множество способов, которыми вы могли бы go об этом, но давайте выберем способ, которым вы до сих пор занимались.

Итак, вы разбили предложение на слова, что, как я полагаю, вы выполнили через text = text.split(" "), так что ваш список выглядит примерно так: text = ["The", "quick", "brown", "fox.", "Jumped", "over", "the", "lazy", "dog."]

Теперь давайте добавим точку в этот новый массив, new_list.

text = text.split(" ")
new_list = []  # New list we will write the words to

for word in text:
    if '.' in word:
        word = word.split('.')  # Here we assume period always comes after word
        new_list.append(word[0])
        new_list.append('.')
    else:
        new_list.append(word)

Теперь, похоже, вам не нужны такие слова как "The" или "более". Для этого просто создайте другой массив, такой как skip_words = ["The", "the", "over"].

skip_words = ["The", "the", "over"]
for word in skip_words:
    new_list.remove(word)

И это должно сработать! Теперь просто попробуйте распечатать new_list.

...