我正在尝试使用NLTK和广告中的单词标记化来提取一些关键信息。
例如:“该房间可容纳800人,禁止吸烟,不允许12岁以上的儿童...”
我的问题是: -(最大容量)的含义不同于容量。 -吸烟与吸烟无异。
如何标记合成词以进行分析?我不想破坏[“不”,“吸烟”]我想要一个令牌[“不吸烟”]
word_tokenize(text)
此外,当我标记和删除停用词时,我会失去这些词的否定含义。
答案 0 :(得分:0)
我认为您正在寻找的是NLTK的ngrams
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
的{{1}}可以为您提供所需要的配对,这意味着您不需要事先使用上面的代码。