跳转到主要内容

创建解析器

项目描述

parserator

一个用于制作特定领域概率解析器的工具包

Build Status

你有没有特定领域的文本数据,如果能够从中提取结构将非常有用?这个工具包将帮助你创建一个定制的NLP模型,该模型从真实数据中的模式中学习,然后使用这些知识来自动处理新的字符串。你所需要的只是一些训练数据来教你的解析器关于其领域。

概率解析器做什么?

给定一个字符串,概率解析器会将它分解成带有标签的组件。解析器使用条件随机场来根据(1)组件字符串的特征和(2)标签的顺序对组件进行标记。

何时使用概率解析器?

概率解析器特别适用于具有共同结构/模式的字符串集合,但它们在难以用硬编码规则预测的方式上偏离这些模式。

例如,在大多数情况下,美国的地址以门牌号为开头。但也有例外:有时有效的美国地址会偏离这种模式(例如,以建筑物名称或邮政信箱开头的地址)。此外,真实数据集中的地址通常包含拼写错误和其他错误。由于需要考虑的图案和可能的错误是无限的,因此概率解析器非常适合解析美国地址。

采用概率解析器(而不是基于规则的解析方法),解析器可以从新的训练数据中不断学习,从而不断提高其性能!

以下是一些概率解析器可能有用的领域

  • 其他国家不熟悉的地址
  • 产品名称/描述(例如,将“Twizzlers Twists, Strawberry, 16-Ounce Bags (Pack of 6)”这样的短语解析为品牌、项目、口味、重量等)
  • 学术写作中的引用

解析器的示例

在我们的Web界面上尝试这些解析器!

如何制作解析器 - 快速概述

有关每个步骤的更多详细信息,请参阅解析器文档

  1. 初始化新的解析器

    pip install parserator
    parserator init [YOUR PARSER NAME]
    python setup.py develop
    
  2. 将解析器配置到您的领域

    • 配置标签(即标记的令牌的可能标签集)
    • 配置标记化器(即如何将原始字符串分割成一系列要标记的令牌)
  3. 定义与您的领域相关的特征

    • 定义令牌级特征(例如,长度、大小写)
    • 定义序列级特征(例如,令牌是否是序列中的第一个令牌)
  4. 准备训练数据

    • Parserator以XML格式读取训练数据
    • 要从CSV文件中的未标记字符串创建XML格式的训练数据输出,请使用parserator的命令行界面手动标记令牌。它使用第一列的值,并忽略其他列。要开始标记,运行parserator label [infile] [outfile] [modulename]
    • 例如,parserator label unlabeled/rawstrings.csv labeled_xml/labeled.xml usaddress
  5. 训练您的解析器

    • 要使用您的标记训练数据训练解析器,请运行parserator train [traindata] [modulename]
    • 例如,parserator train labeled_xml/labeled.xml usaddressparserator train "labeled_xml/*.xml" usaddress
    • 训练后,您的解析器将有一个更新的模型,以.crfsuite设置文件的形式
  6. 如有需要,请重复步骤3-5!

如何使用您的新解析器

一旦您能够从训练数据中创建模型,请通过运行python setup.py develop安装您的自定义解析器。

然后,在Python shell中,您可以导入您的解析器并使用parsetag方法处理新的字符串。例如,要使用probablepeople模块

>>> import probablepeople
>>> probablepeople.parse('Mr George "Gob" Bluth II')
[('Mr', 'PrefixMarital'), ('George', 'GivenName'), ('"Gob"', 'Nickname'), ('Bluth', 'Surname'), ('II', 'SuffixGenerational')]

重要链接

团队

错误和虫子

如果某个功能不符合直观预期,它就是一个bug,应该报告。报告一个问题

补丁和拉取请求

我们欢迎您的想法!您可以通过GitHub问题(bug报告、功能请求、一般疑问)提出建议,或者通过拉取请求提交代码贡献。

如何贡献代码

  • 分支项目。
  • 添加您的功能或修复bug。
  • 给我们发送一个带有您工作描述的拉取请求!不要担心它不完美:将PR视为对话的开始,而不是一个成品。

版权和归属

版权(c)2016 DataMade。在MIT许可证下发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

parserator-0.6.9.tar.gz (15.9 kB 查看哈希值)

上传时间:

构建分布

parserator-0.6.9-py3-none-any.whl (14.4 kB 查看哈希值)

上传时间: Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面