[英]Text Classification with Two Word Token
我正在尝试使用NLTK和广告中的单词标记化进行一些关键信息提取。
例如:“该房间最多可容纳800人,禁止吸烟,不允许12岁以上的儿童入住。”
我的问题是:-(最大容量)的含义不同于容量。 -吸烟与吸烟无异。
如何标记合成词以进行分析? 我不想破坏[“不”,“吸烟”]我想要一个令牌[“不吸烟”]
word_tokenize(text)
而且,当我标记和删除停用词时,我会失去这些词的否定含义。
我认为您要寻找的是NLTK的ngram
from nltk import ngrams
text = "The room has max capacity of 800 people no smoking allowed no children above 12 yr old ..."
pairs = ngrams(text.split(), 2) # change the 2 here to however many words you want in each group
for pair in pairs:
print(pair)
> ('The', 'room')
('room', 'has')
('has', 'max')
('max', 'capacity')
('capacity', 'of')
('of', '800')
('800', 'people')
('people', 'no')
('no', 'smoking')
('smoking', 'allowed')
('allowed', 'no')
('no', 'children')
('children', 'above')
('above', '12')
('12', 'yr')
('yr', 'old')
('old', '...')
希望这可以帮助
编辑:
如果您接下来要使用TF-IDF,我可能建议sklearn.feature_extraction.text.TfidfVectorizer
,将ngram_range
作为参数ngram_range=(2, 2)
将为您提供您想要的对,这意味着您不会需要事先使用上面的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.