我试图分析由行给出的文本,并且我希望使用sckit-learn包在python中的TF-IDF-vectorization来对行进行向量化。 问题在于矢量化可以通过单词或n-gram完成,但我希望它们可以用于行,我已经排除了一个解决方法,只是将每一行作为一个单词进行矢量化(因为这样的话和他们的意思不会被考虑。)
查看文档我没有找到如何做到这一点,那么有没有这样的选项?
答案 0 :(得分:1)
您似乎误解了TF-IDF矢量化正在做什么。对于每个单词(或N-gram),它为单词分配权重,该权重是术语(TF)的频率和文档中其他术语(IDF)的反向频率的函数。将它用于单词是有意义的(例如,知道单词"披萨"出现的频率)或N-gram(例如"芝士披萨" 2克)
现在,如果你在线上这样做,会发生什么?除非你碰巧有一个完全重复行的语料库(例如"我需要Python和#34中的帮助),你的TF-IDF转换将是垃圾,因为每个句子在文档中只出现一次。如果你的句子确实总是与标点符号相似,那么对于所有意图和目的,它们不是你语料库中的句子,而是单词。这就是为什么没有选择用句子做TF-IDF:它没有实际意义或理论意义。