NLP中列表或文件的总单词数(列表长度)与词汇表之间的区别?

Difference between the total number of words (length of a list) and vocabulary of a list or file in NLP?

如何计算存储在 python 中的语料库的 总字数 词汇量 ?这两个术语之间的主要区别是什么?

假设,我正在使用以下列表。 单词总数或列表的长度可以通过len(L1)计算。但是,我很想知道如何计算下面提到的列表的词汇

 L1 = ['newnes', 'imprint', 'elsevier', 'elsevier', 'corporate', 'drive', 'suite', 
'burlington', 'usa', 'linacre', 'jordan', 'hill', 'oxford', 'uk',
'elsevier', 'inc', 'right', 'reserved', 'exception', 'newness', 'uk', 'military',
'organization', 'summary', 'task', 'definition', 'system', 'definition',
'system', 'engineering', 'military', 'project', 'military', 'project', 
'definition', 'input', 'output', 'operation', 'requirement', 'development',
'overview', 'spacecraft', 'development', 'architecture', 'design']

如果您的问题是关于如何获取列表中唯一单词的数量,可以使用 sets. 来实现(根据我对 NLP 的记忆,语料库的词汇应该是指该语料库中唯一单词的集合。)

使用 set() 方法将您的列表转换为集合,然后对其调用 len()。在您的情况下,您将获得列表 L1 中唯一单词的数量,如下所示:

len(set(L1))     #number of unique words in L1

编辑:您现在提到词汇表是词形还原词的集合。在这种情况下,除了从 NLTK 或您正在使用的任何 NLP 库导入词形还原器,运行 您的列表或其他任何内容导入词形还原器,并将输出转换为集合并继续上述操作外,您将做同样的事情.

这是您要找的吗?

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()
list_of_tokens = ['cat', 'dog','cats', 'children','dog']
unique_tokens = set(list_of_tokens)
### {'cat', 'cats', 'children', 'dog'}

tokens_lemmatized = [ lemmatizer.lemmatize(token) for token in unique_tokens]
#### ['child', 'cat', 'cat', 'dog']

unique_tokens_lemmatized = set(tokens_lemmatized)
#### {'cat', 'child', 'dog'}

print('Input tokens:',len(list_of_tokens) , 'Lemmmatized tokens:', len(unique_tokens_lemmatized)
#### Input tokens: 5 Lemmmatized tokens: 3