《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.1 何谓文本歧义

简介:

本节书摘来异步社区《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书中的第2章,第2.1节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.1 何谓文本歧义

事实上,要想给文本/数据歧义这个术语一个定义是相当困难的。本书将它定义成从原生数据中获取一段机器可读的已格式化文本之前所要做的所有预处理工作,以及所有繁复的任务。该过程应该涉及数据再加工(data munging)、文本清理、特定预处理、标识化处理、词干提取或词形还原以及停用词移除等操作。下面我们就先来看一个基本实例,解析一个csv文件:

>>>import csv
>>>with open('example.csv','rb')  as f:
>>>    reader = csv.reader(f,delimiter=',',quotechar='"') 
>>>    for line in reader :
>>>        print line[1]    # assuming the second field is the raw sting

如你所见,上述代码在试图对csv文件进行解析,它将会csv文件中所有的列元素构造成一个列表。我们在这操作过程中可以自定义相关的分隔符和引用符(quoting character)。现在的问题是,这些原生字符串会涉及上一章中所学到的那些不同类型的文本歧义。而其中的关键是我们要提供能应付日常csv文件的足够细节的信息。

这些最常见文档类型通常都有一个清晰的处理流程,我们可以通过图2-1了解一下。

8ebe4897780f8660bc1e8de25b296e9cc4d94c9b

在上图中,堆栈的第一层中列出了一些最常见的数据源。在大多数情况下,我们遇到的数据都属于这些数据格式中的某一个。接下来的这一层是Python对于这些数据格式最常见的封装方式。例如在之前的csv文件的例子中,Python的csv模块是处理csv文件最可靠的方法。通过该模块,我们可以使用各种不同的分离器和引用符等工具。

除此之外,json也是一种常见的文件格式。

下面来看一个具体的json实例:

{
  "array": [1,2,3,4],
 "boolean": True,
  "object": {
    "a": "b"
  },
  "string": "Hello World"
}

现在让我们来处理一下该字符串,其解析代码如下:

>>>import json
>>>jsonfile = open('example.json')
>>>data = json.load(jsonfile)
>>>print data['string']
"Hello World"

如你所见,这里只是用json模块加载了一个json文件。Python允许我们挑选相关原生字符串的形式并对其进行处理。关于其他所有数据源的更详细信息以及Python中相关的解析工具包,请读者自行参考我们上面列出的那个图表。当然,我们在这里只能指出相关的方向,至于这些工具包的详细信息,还需读者自己上网去搜索。

所以,在我们针对这些不同的文档格式编写自己的解析器之前,请再看一下上图第二行中所列出的Python解析器。当我们获得某一段原生字符串时,所有相关的预处理步骤都可以被当作是某一种管道,或者还可以选择性地忽略掉其中的部分内容。下一节,我们将会具体讨论标识化处理、词干提取以及词形还原的相关细节。并且,我们也会讨论一下这些应用的各种变化,以及何时适用于其他场景。

注意 提示: 

现在,既然我们对文本歧义是什么有了一点想法,就请试着用上述图表中所列出的某个Python模块连接任意一种数据库试试。

相关文章
|
11月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
2569 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
11月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
298 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
9月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
879 0
|
11月前
|
机器学习/深度学习 人工智能 Kubernetes
Argo Workflows 加速在 Kubernetes 上构建机器学习 Pipelines
Argo Workflows 是 Kubernetes 上的工作流引擎,支持机器学习、数据处理、基础设施自动化及 CI/CD 等场景。作为 CNCF 毕业项目,其扩展性强、云原生轻量化,受到广泛采用。近期更新包括性能优化、调度策略增强、Python SDK 支持及 AI/大数据任务集成,助力企业高效构建 AI、ML、Data Pipelines。
1174 0
|
12月前
|
机器学习/深度学习 数据采集 算法
Python AutoML框架选型攻略:7个工具性能对比与应用指南
本文系统介绍了主流Python AutoML库的技术特点与适用场景,涵盖AutoGluon、PyCaret、TPOT、Auto-sklearn、H2O AutoML及AutoKeras等工具,帮助开发者根据项目需求高效选择自动化机器学习方案。
1430 1
|
10月前
|
数据采集 监控 Java
Python 函数式编程的执行效率:实际应用中的权衡
Python 函数式编程的执行效率:实际应用中的权衡
414 102
|
11月前
|
存储 数据可视化 BI
Python可视化应用——学生成绩分布柱状图展示
本程序使用Python读取Excel中的学生成绩数据,统计各分数段人数,并通过Matplotlib库绘制柱状图展示成绩分布。同时计算最高分、最低分及平均分,实现成绩可视化分析。
852 0
|
9月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
681 6
|
10月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1707 1
|
9月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
616 0

热门文章

最新文章

推荐镜像

更多