我在学习NLP的过程中,了解了词条化、词形还原、词性分析等基础知识。我发现sklearn中有CountVectorizer和Tfidfvectorizer,它们内部具备应用词条化和词形还原的能力。
所以问题是:
什么时候我需要使用核心的NLP活动来获取词汇表,而不是使用CountVectorizer和Tfidfvectorizer?
回答:
词条化和词形还原是NLP中的基本构建块。使用词条化,你可以将字符串分解成词条/单词。词条化取决于文本的语言、文本的构成方式等。例如,中文文本的词条化与英语不同,与推文的词条化也不同。因此,存在不同类型的词条化器。
CountVectorizer和Tfidfvectorizer用于将文本块向量化,它们依赖于文本中的单词。因此,它们需要一种机制来词条化单词,并且它们支持通过可调用方法(作为参数传递)发送我们的词条化器。如果我们不传递任何词条化器,它会使用简单的方式通过空格进行分割。
查看CountVectorizer的文档
tokenizer: callable, default=None
在保留预处理和n-gram生成步骤的同时,覆盖字符串词条化步骤。仅当analyzer == ‘word’时适用。
因此,它们允许我们传递自己的词条化器。对于词形还原也同样适用。