При очистке токенизированных данных, как использовать .isalpha () в списке списков для возврата значений, а не логических значений? - PullRequest
1 голос
/ 08 марта 2019

Я практикую НЛП с библиотекой nltk, и я хочу создать себе набор данных для этого.Я объединяю несколько документов в список списков, а затем обрабатываю их.Сначала я делаю токены, строчные, а затем хочу удалить знаки препинания.Это работает для vecor, но не для списка списков:

Пример для вектора:

a = 'This is a Testsentence and it is beautiful times 10!**!.' 
b = word_tokenize(a) 
c = [x.lower() for x in b] 
['this', 'is', 'a', 'testsentence', 'and', 'it', 'is', 'beautiful', 'times', '10', '.'] 
d = [x for x in c if x.isalpha()] 
['this', 'is', 'a', 'testsentence', 'and', 'it', 'is', 'beautiful', 'times']

Теперь я хочу сделать это в списке списков, но мне не удаетсянапишите понимание списка в конце:

aa = 'This is a Testsentence and it is beautiful times 10.'
bb = 'It is a beautiful Testsentence?'
cc = 'Testsentence beautiful!'
dd = [aa, bb, cc]
ee = [word_tokenize(x) for x in dd]
ff = [[x.lower() for x in y] for y in ee]
[['this', 'is', 'a', 'testsentence', 'and', 'it', 'is', 'beautiful', 'times', '10', '.'], ['it', 'is', 'a', 'beautiful', 'testsentence', '?'], ['testsentence', 'beautiful', '!']]

Именно здесь начинаются мои проблемы, так как я не могу понять, как правильно написать понимание списка.

gg = [[j.isalpha() for j in i] for i in ff]

Это результат

[[True, True, True, True, True, True, True, True, True, False, False], [True, True, True, True, True, False], [True, True, False]]

Но я хочу что-то вроде этого:

[['this', 'is', 'a', 'testsentence', 'and', 'it', 'is', 'beautiful', 'times', '10', '.'], ['it', 'is', 'a', 'beautiful', 'testsentence', '?'], ['testsentence', 'beautiful', '!']]

Спасибо :))

1 Ответ

0 голосов
/ 12 апреля 2019

Попробуйте следующее

gg = [[j for j in i if j.isalpha()] for i in ff]

Возвращает ожидаемый ответ

[['this', 'is', 'a', 'testsentence', 'and', 'it', 'is', 'beautiful', 'times'],
['it', 'is', 'a', 'beautiful', 'testsentence'],
['testsentence', 'beautiful']]
...