Web NLP中的英语分词?

Web 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

我是NLP领域的新手,但我目前的研究需要从URL地址进行一些文本解析(或称为关键词提取),例如假URL

http://ads.goole.com/appid/heads
对我的解析设置了两个约束

  • 第一个“ads”和最后一个“heads”应该是不同的,因为“heads”中的“ads”意味着更多的后缀,而不是广告

  • “appid”可以分为两部分;也就是“app”和“id”,在互联网上都有语义

  • 我试过工具箱和谷歌搜索引擎。前者试图根据语法意义对每个单词进行分类,这是我所期望的。谷歌引擎在“appid”方面表现得更聪明,这给了我关于“appid”的建议

    我不能在谷歌搜索中查看搜索历史的参考,所以它会给我“appid”,因为有很多人搜索过这些词。我可以得到一些离线行方法来执行类似的解析吗


    更新:

    请跳过正则表达式的建议,因为即使在简单的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+)中,代码有点不同: