NLTK的默认标记器nltk.word_tokenizer链接两个标记器,一个句子标记器,然后是一个对句子进行操作的单词标记器.它的开箱即用相当不错.
>>> nltk.word_tokenize("(Dr. Edwards is my friend.)")
['(', 'Dr.', 'Edwards', 'is', 'my', 'friend', '.', ')']
Run Code Online (Sandbox Code Playgroud)
我想使用相同的算法,除了让它将偏移元组返回到原始字符串而不是字符串标记.
通过偏移我的意思是2-ples可以作为原始字符串的索引.比如我在这里
>>> s = "(Dr. Edwards is my friend.)"
>>> s.token_spans()
[(0,1), (1,4), (5,12), (13,15), (16,18), (19,25), (25,26), (26,27)]
Run Code Online (Sandbox Code Playgroud)
因为s [0:1]是"(",s [1:4]是"博士"等等.
有没有一个NLTK调用可以做到这一点,还是我必须编写自己的偏移算术?
我是 NLP 新手,尝试使用 nltk pos 标记器,但对用法有疑问,
它通常接受一个单词或一个完整的句子,并给出输入的 pos 标签,为什么它以两种方式工作?
我有这个疑问,因为我尝试删除停用词并使用 spacy pos 标记技术,我的同事说我不应该这样做,因为结果会随着它检查单词的位置而改变,
nltk pos tagger 也会一样吗?如果是,那么既然考虑了定位,为什么它接受单个单词?
这里找到了 nltk 中两个用例的示例用法:https://github.com/acrosson/nlp/blob/master/subject_extraction/subject_extraction.py#L61
https://github.com/acrosson/nlp/blob/master/subject_extraction/subject_extraction.py#L44