- 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 提要
- Python-情感分析
- Python - 搜索和匹配
- Python - 文本修改
- Python-文本换行
- Python-频率分布
- Python-文本摘要
- Python - 词干算法
- Python - 约束搜索
Python - 块和缝隙
分块是根据单词的性质将相似单词分组在一起的过程。在下面的示例中,我们定义了生成块所必须使用的语法。语法建议创建块时将遵循的名词和形容词等短语的顺序。块的图形输出如下所示。
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 是从块中删除一系列标记的过程。如果标记序列出现在块的中间,则这些标记将被删除,在它们已经存在的位置留下两个块。
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”。