我试图在广告中使用NLTK和word标记进行一些关键信息提取。
例如:“该房间最大可容纳800人,禁止吸烟,禁止12岁以上的儿童吸烟……”
我的问题是:-(最大容量)的含义不同于容量。-禁止吸烟与吸烟不同。
我如何标记复合词来进行分析?我不想打破“不”,“吸烟”,我想要一个象征性的“禁止吸烟”
word_tokenize(text)另外,当我标记和删除停止词时,我就失去了单词的否定意义。
发布于 2019-03-11 21:05:55
我想你要找的是NLTK的夜报
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,我建议使用sklearn.feature_extraction.text.TfidfVectorizer,它使用ngram_range作为参数,ngram_range=(2, 2)会给出您想要的对,这意味着您不需要在手上使用上面的代码。
https://stackoverflow.com/questions/55110227
复制相似问题