python中有TfidfVectorizer可以实现tf-idf值的计算,
我想要获取的特征词已经整理好了,例如下面这样
This_is_book
This_is_apple
我想要计算的是This_is_book和This_is_apple的tf-idf值,
可是用TfidfVectorizer的话,它就自动帮我把词汇拆分成This,is,book,apple这4个词了。
用TfidfVectorizer后的输出结果:
This This的tf-idf值
is is的tf-idf值
book book的tf-idf值
apple apple的tf-idf值
想要的输出结果:
This_is_book This_is_book的tf-idf值
This_is_apple This_is_apple的tf-idf值
请问TfidfVectorizer中设置什么参数可以让它不要自动拆分词汇呢?
或者如何自己写tf-idf的计算程序?
如果你的文本中,就是This_is_apple这种数据,TfidfVectorizer不会自动帮你分词,可以正常得到tf-idf值,除非你自己定义了分词规则,如果你的数据是This is apple这种格式,可以直接设置ngram_range=(1, 3)
谢谢你的热心回答!
终于知道原因了。
原来我的数据写成了下面这种全角的文字,所以就被自动拆分词汇了。
如果把全角字母和全角下划线改为半角字母和半角下划线的话就不会出现上面的问题了。
This_is_book
This_is_apple
可是文字中如果有逗号或者点的话,比如
This_is_.book
This_is_,apple
又被自动拆分成下面这个样子了。
apple,0.408248290464
book,0.408248290464
this_is_,0.816496580928
TfidfVectorizer中是否可以设置只按照换行来识别词汇呢?