首页 新闻 会员 周边 捐助

[python]请问tf-idf的实现方法

0
悬赏园豆:20 [已解决问题] 解决于 2020-08-19 12:43

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的计算程序?

芽衣的主页 芽衣 | 菜鸟二级 | 园豆:384
提问于:2019-11-08 09:44
< >
分享
最佳答案
0

如果你的文本中,就是This_is_apple这种数据,TfidfVectorizer不会自动帮你分词,可以正常得到tf-idf值,除非你自己定义了分词规则,如果你的数据是This is apple这种格式,可以直接设置ngram_range=(1, 3)

收获园豆:20
yytxdy | 小虾三级 |园豆:1680 | 2019-11-10 10:47

谢谢你的热心回答!
终于知道原因了。
原来我的数据写成了下面这种全角的文字,所以就被自动拆分词汇了。
如果把全角字母和全角下划线改为半角字母和半角下划线的话就不会出现上面的问题了。

This_is_book
This_is_apple

可是文字中如果有逗号或者点的话,比如

This_is_.book
This_is_,apple

又被自动拆分成下面这个样子了。

apple,0.408248290464
book,0.408248290464
this_is_,0.816496580928

TfidfVectorizer中是否可以设置只按照换行来识别词汇呢?

芽衣 | 园豆:384 (菜鸟二级) | 2019-11-22 12:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册