Web NLP中的英语分词?
我是NLP领域的新手,但我目前的研究需要从URL地址进行一些文本解析(或称为关键词提取),例如假URLWeb NLP中的英语分词?,web,nlp,text-segmentation,Web,Nlp,Text Segmentation,我是NLP领域的新手,但我目前的研究需要从URL地址进行一些文本解析(或称为关键词提取),例如假URL http://ads.goole.com/appid/heads 对我的解析设置了两个约束 第一个“ads”和最后一个“heads”应该是不同的,因为“heads”中的“ads”意味着更多的后缀,而不是广告 “appid”可以分为两部分;也就是“app”和“id”,在互联网上都有语义 我试过工具箱和谷歌搜索引擎。前者试图根据语法意义对每个单词进行分类,这是我所期望的。谷歌引擎在“appi
http://ads.goole.com/appid/heads
对我的解析设置了两个约束
更新: 请跳过正则表达式的建议,因为即使在简单的URL中,也可能存在未知数量的单词组合,如“appid” 谢谢
Jamin与标记化不同,您真正想要做的是分词。例如,这是一种理解无空间内容的方法 我还没有读完整个教程,但这应该会让你开始学习。他们甚至提供URL作为一个潜在的用例 计算机可以做到这一点。这是一个Apache2许可的英语分词模块,用纯Python编写,基于万亿单词语料库 基于Peter Norvig在《美丽的数据》(Segaran and Hammerbacher,2009)一书中的“自然语言语料库数据”一章中的代码 数据文件来源于Google Web万亿单词语料库,如Thorsten Brants和Alex Franz所述,由语言数据联盟分发。此模块仅包含该数据的一个子集。单格数据仅包括最常见的333000个单词。类似地,bigram数据只包含最常见的250000个短语。每个单词和短语都用小写字母表示,并去掉标点符号 使用
pip安装很容易:
$ pip install wordsegment
只需调用segment
即可获得单词列表:
>>> import wordsegment as ws
>>> ws.segment('http://ads.goole.com/appid/heads')
['http', 'ads', 'goole', 'com', 'appid', 'heads']
正如您所注意到的,旧语料库的“appid”排名不高。没关系。我们可以很容易地教它。只需将其添加到bigram\u counts
字典中即可
>>> ws.bigram_counts['app id'] = 10.2e6
>>> ws.segment('http://ads.goole.com/appid/heads')
['http', 'ads', 'goole', 'com', 'app', 'id', 'heads']
我通过谷歌搜索“app id”并记录结果数量来选择值10.2e6
。我已经完成了教程,发现给定的语料库(来自书本文本)与互联网url(例如appid)不兼容。但这是一个很好的起点。因此,我将搜索除上述非免费google-2006数据之外的其他免费语料库。谢谢。请注意,在wordsegment
的最新版本(v1.0+)中,代码有点不同: