- Python - 文本处理
- Python - 文本处理简介
- Python - 文本处理环境
- Python - 字符串不变性
- Python - 排序行
- Python - 段落重新格式化
- Python - 统计段落中的词元
- Python - 二进制ASCII转换
- Python - 字符串作为文件
- Python - 反向读取文件
- Python - 过滤重复单词
- Python - 从文本中提取电子邮件
- Python - 从文本中提取URL
- Python - 美化打印
- Python - 文本处理状态机
- Python - 首字母大写和翻译
- Python - 分词
- Python - 删除停用词
- Python - 同义词和反义词
- Python - 文本翻译
- Python - 单词替换
- Python - 拼写检查
- Python - WordNet接口
- Python - 语料库访问
- Python - 词性标注
- Python - 块和块隙
- Python - 块分类
- Python - 文本分类
- Python - 二元语法
- Python - 处理PDF
- Python - 处理Word文档
- Python - 读取RSS Feed
- Python - 情感分析
- Python - 搜索和匹配
- Python - 文本处理
- Python - 文本换行
- Python - 频率分布
- Python - 文本摘要
- Python - 词干提取算法
- Python - 受限搜索
Python - 块和块隙
Chunking(块化)是根据单词的性质将相似的单词分组在一起的过程。在下面的示例中,我们定义了一个语法,根据该语法必须生成块。语法建议在创建块时要遵循的短语序列,例如名词和形容词等。块的图示输出如下所示。
import nltk sentence = [("The", "DT"), ("small", "JJ"), ("red", "JJ"),("flower", "NN"), ("flew", "VBD"), ("through", "IN"), ("the", "DT"), ("window", "NN")] grammar = "NP: {? * }" cp = nltk.RegexpParser(grammar) result = cp.parse(sentence) print(result) result.draw()
运行上述程序后,我们将得到以下输出:
更改语法后,我们将得到如下所示的不同输出:
import nltk sentence = [("The", "DT"), ("small", "JJ"), ("red", "JJ"),("flower", "NN"), ("flew", "VBD"), ("through", "IN"), ("the", "DT"), ("window", "NN")] grammar = "NP: {
运行上述程序后,我们将得到以下输出:
Chinking(块隙)
Chinking(块隙)是从块中移除一系列词元的过程。如果一系列词元出现在块的中间,则会移除这些词元,留下它们原来存在的两个块。
import nltk sentence = [("The", "DT"), ("small", "JJ"), ("red", "JJ"),("flower", "NN"), ("flew", "VBD"), ("through", "IN"), ("the", "DT"), ("window", "NN")] grammar = r""" NP: {<.*>+} # Chunk everything }+{ # Chink sequences of JJ and NN """ chunkprofile = nltk.RegexpParser(grammar) result = chunkprofile.parse(sentence) print(result) result.draw()
运行上述程序后,我们将得到以下输出:
正如您所看到的,满足语法条件的部分作为单独的块从名词短语中被提取出来。这个提取不在所需块中的文本的过程称为chinking(块隙)。
广告