Как удалить всю строку, если у нее нет тега pos, как у CD? - PullRequest
0 голосов
/ 31 января 2019

Я читаю новостную статью и делаю пометки с помощью nltk.Я хочу удалить те строки, у которых нет тега pos, например CD (цифры).

import io
import nltk
from nltk.corpus import stopwords 
from nltk.tokenize import word_tokenize
from nltk import pos_tag
stop_words = set(stopwords.words('english')) 
file1 = open("etorg.txt") 
line = file1.read()
file1.close()
print(line)
words = line.split() 
tokens = nltk.pos_tag(words)

Как удалить все предложения, не содержащие тег CD?

1 Ответ

0 голосов
/ 31 января 2019

Просто используйте [word for word in tokens if word[1] != 'CD']

РЕДАКТИРОВАТЬ: Чтобы получить предложения без чисел, используйте этот код:

def has_number(sentence):
    for i in nltk.pos_tag(sentence.split()):
        if i[1] == 'CD':
            return ''
    return sentence

line = 'MNC claims 21 million sales in September. However, industry sources do not confirm this data. It is estimated that the reported sales could be in the range of fifteen to 18 million. '

''.join([has_number(x) for x in line.split('.')])

> ' However, industry sources do not confirm this data '
...