zoukankan      html  css  js  c++  java
  • NLTK实现文本切分

    之前已经了解了使用nltk库,将文本作为参数传入相应函数进行切分的方法,下面看看使用正则表达式如何来进行文本切分。

    1. 使用正则表达式切分

    1.1 通过RegexpTokenizer 进行切分。先导入 RegexpTokenizer 模块,然后构建一个与文本中的标识符相匹配的正则表达式。将此正则表达式作为参数传入RegexpTokenizer ,同时实例化一个对象,使用此对象对文本进行切分。

    from nltk.tokenize import RegexpTokenizer
    
    # RegexpTokenizer() 参数是将要匹配的字符串的正则表达式,返回值是所有匹配到的字符串组成的列表
    tokenizer = RegexpTokenizer("w+")
    print(tokenizer.tokenize("Don't hesitate to ask questions!"))

    运行结果:

    ['Don', 't', 'hesitate', 'to', 'ask', 'questions']

    1.2 使用 regexp_tokenize 切分。

    from nltk.tokenize import regexp_tokenize
    sentence = "My name is QWE, and I'm 22 years old."
    print(regexp_tokenize(sentence, pattern= 'w+|$[d.]+|S+'))

    运行结果:

    ['My', 'name', 'is', 'QWE', ',', 'and', 'I', "'m", '22', 'years', 'old', '.']

    1.3 以空格为分界点进行切分

    from nltk.tokenize import RegexpTokenizer
    
    tok = RegexpTokenizer('s+', gaps= True)
    print(tok.tokenize("Don't hesitate to ask questions"))

    1.4 筛选以大写字母开头的单词

    from nltk.tokenize import RegexpTokenizer
    sentence = "My name is QWE, and I'm 22 years old.I'm from China"
    capt = RegexpTokenizer('[A-Z]w+')
    print(capt.tokenize(sentence))

    结果:

    ['My', 'QWE', 'China']

    (看起来都像是直接用正则匹配的。。)

    1.5 使用WhitespaceTokenizer可以通过返回元组形式的序列来进行切分,该序列为标识符在语句中的位置和偏移量。

    from nltk.tokenize import WhitespaceTokenizer
    sentence = " She secured 90.56 % in class X 
    . She is a meritorious student
    "
    print(list(WhitespaceTokenizer().span_tokenize(sentence)))

    结果:

    [(1, 4), (5, 12), (13, 18), (19, 20), (21, 23), (24, 29), (30, 31), (33, 34), (35, 38), (39, 41), (42, 43), (44, 55), (56, 63)]
  • 相关阅读:
    WPF中的控件布局
    [转]WPF, WPF/E释疑
    创建像Vista任务栏一样的半透明玻璃按钮
    WPF中的TextBlock
    .net 2.0 文档生成工具
    XNA Game Studio Express 1.0正式版 发布
    WPF免费视频教程,来自Lynda.com
    WPF中的ControlTemplate(控件模板)
    获奖啦, 微软亚洲研究院第九届学生实践项目
    [转]让用户通过宏和插件向您的 .NET 应用程序添加功能
  • 原文地址:https://www.cnblogs.com/zrmw/p/10875684.html
Copyright © 2011-2022 走看看