#python #spacy
#python #spacy
Вопрос:
Есть ли простой способ составить список уникальных токенов spacy?
Например, я могу получить список токенов word следующим образом.
words = [w for w in list(doc) if w.is_alpha]
И «слова» могут состоять из нескольких токенов одного и того же текста. (например, я, есть, что, я, есть)
Есть ли способ сделать так, чтобы «слова» содержали только уникальные токены текста? (например, я, есть, что)
Я знаю set()
, что создает уникальный список, но я не думаю, что он работает для токенов, потому что его текстовые данные существуют внутри. И я не пытаюсь составить список уникальных строковых текстов, а список уникальных токенов spacy.
Комментарии:
1. Что вы подразумеваете под «уникальным токеном», если не уникальные строки? Каждый токен spaCy уникален, потому что у него есть свой индекс в документе. Кроме того, не используйте
list(doc)
, это не делает ничего полезного, просто используйтеdoc
.
Ответ №1:
Поэтому вам, вероятно, нужно объяснить, как вы хотите использовать этот список, чтобы сделать что-то полезное, но вот один из способов получить только первый токен spaCy с заданным строковым представлением.
out = []
seen = set()
for word in doc:
if word.text not in seen:
out.append(word)
seen.add(word.text)
# now out has "unique" tokens