#nltk #list-comprehension
#nltk #понимание списка
Вопрос:
Я практикую NLP с библиотекой nltk и хочу создать для этого набор данных. Я объединяю несколько документов в список списков, а затем предварительно обрабатываю их. Сначала я маркирую его, в нижнем регистре, а затем я хочу убрать знаки препинания. Это работает для вектора, но не для списка списков:
Пример для вектора:
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. Ваш ожидаемый результат равен
ff
. Можете ли вы обновить свой вопрос, чтобы исправить это?
Ответ №1:
Попробуйте следующее
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']]