Ответ 1
from stemming.porter2 import stem
documents = ["Human machine interface for lab abc computer applications",
"A survey of user opinion of computer system response time",
"The EPS user interface management system",
"System and human system engineering testing of EPS",
"Relation of user perceived response time to error measurement",
"The generation of random binary unordered trees",
"The intersection graph of paths in trees",
"Graph minors IV Widths of trees and well quasi ordering",
"Graph minors A survey"]
documents = [[stem(word) for word in sentence.split(" ")] for sentence in documents]
То, что мы здесь делаем, использует понимание списка, чтобы прокручивать каждую строку в главном списке, разделяя это на список слов. Затем мы прокручиваем этот список, заставляя каждое слово двигаться, возвращая новый список слов.
Обратите внимание, что я не пробовал это с установкой стеллажа - я взял это из комментариев и никогда не использовал его сам. Это, однако, основная концепция разделения списка на слова. Обратите внимание, что это приведет к составлению списка списков слов, сохраняя первоначальное разделение.
Если вы не хотите этого разделения, вы можете сделать:
documents = [stem(word) for sentence in documents for word in sentence.split(" ")]
Вместо этого вы оставите один непрерывный список.
Если вы хотите объединить слова в конце, вы можете сделать:
documents = [" ".join(sentence) for sentence in documents]
или сделать это в одной строке:
documents = [" ".join([stem(word) for word in sentence.split(" ")]) for sentence in documents]
Сохранение структуры предложения или
documents = " ".join(documents)
Если игнорировать его.