该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
使用NLTK Tokenize文本
在之前我们用拆分方法将文本分割成令牌,现在我们使用NLTK来标记化文本。
文本没有标记化之前是无法处理的,所以对文本进行标记化非常重要的.token化过程意味着将大的部件分割为小部件。
你可以将段落记号化成句子,将句子记号化成单个词,NLTK分别提供了句子分词和单词标记生成器。
假如有这样这段文本:
你好,亚当,你好吗?我希望一切都进展顺利。今天是美好的一天,见你哥们
使用句子标记生成器将文本标记化成句子:
来自nltk 。标记化导入sent_tokenize
mytext = “你好,亚当,你好吗?我希望一切都进展顺利。今天是美好的一天,见你兄弟。
打印(sent_tokenize (mytext的))
输出如下:
“”你好,亚当,你好吗?“”我希望一切进展顺利。“”今天是美好的一天,见你哥们儿。
这是你可能会想,这也太简单了,不需要使用NLTK的标记生成器都可以,直接使用正则表达式来拆分句子就行,因为每个句子都有标点和空格。
那么再来看下面的文本:
亚当先生,你好吗?我希望一切都进展顺利。今天是美好的一天,见你哥们。
这样如果使用标点符号拆分,你好会被认为是一个句子,如果使用NLTK:
来自nltk 。标记化导入sent_tokenize
mytext = “你好,亚当先生,你好吗?我希望一切都进展顺利,今天是美好的一天,见你兄弟。
打印(sent_tokenize (mytext的))
输出如下:
“”亚当先生,你好吗?“,”我希望一切都进展顺利“,”今天是美好的一天,见你兄弟。“]
这才是正确的拆分。
接下来试试单词标记生成器:
来自nltk 。标记化导入word_tokenize
mytext = “你好,亚当先生,你好吗?我希望一切都进展顺利,今天是美好的一天,见你兄弟。
打印(word_tokenize (mytext的))
输出如下:
“你好”“先生”“亚当”“如何”“是”“你”“”“”“我”“希望”“一切”“是” ''','好','','今天','是','a','好','日',',','看','你','伙计','。 “]
先生这个词也没有被分开.NLTK使用的是PUNKT模块的PunktSentenceTokenizer,它是NLTK.tokenize的一部分。而且这个标记者经过训练,可以适用于多种语言。