本节书摘来异步社区《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书中的第2章,第2.10节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.10 练习
下面是一些开放性答案的问题。
请尝试用pyodbc库访问任意一个数据库。
你能创建一个基于正则表达式的标识器,令其选取的单词只包含大小写字母、数字和金钱符号吗?
[w+]将会选取所有的单词和数字,即[A-Z A-Z0-9],而[$]则会匹配金钱符号。
词干提取和词性还原这两个操作之间的差异是什么?
词干提取操作更多时候是一套用于获取词干一般形式的规则方法。而词形还原主要考虑的是当前的上下文语境以及相关单词的POS,然后将规则应用到特定的语法变化中。通常来说,词干提取的操作实现起来较为简单,并且在处理时间上也要明显短于词形还原。
你可以为自己的母语设计一个(基于规则的)Porter词干提取器吗?提示:http://Snowball.tartarus.org/algorithms/english/stemmer.html。
在完成停用词移除之后,我们还可以执行其他NLP操作吗?
答案是否定的,这是不可能的。所有典型的NLP应用,如词性标注、断句处理等,都需要根据上下文语境来为既定文本生成相关的标签。一旦我们移除了停用词,其上下文环境也就不存在了。
为什么在印地文、中文这样的语言中,词干提取器会变得难以实现?
因为印度语的词法很丰富,而中文则是标识化的难度很高,它们都在符号的标准化上遇到了一定的挑战,因此词干提取器实现起来要困难得多。我们会在后面的章节中详细讨论这些挑战。