GithubHelp home page GithubHelp logo

sophonplus / chineseannotator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jiesutd/yedda

153.0 6.0 33.0 7.34 MB

中文自然语言处理 (NLP) 标注工具,与 有志之士 共同 促进 中文 自然语言处理 的 发展。

License: Apache License 2.0

Python 59.07% TeX 40.93%

chineseannotator's Introduction

中文自然语言处理 (NLP) 标注工具,与 有志之士 共同 促进 中文 自然语言处理 的 发展。

一、关于

  • 这个项目最原始的代码是从 YEDA fork 过来的,访问 YEDA 项目,了解更多信息
  • 不是 一个 web 应用,而是一个基于 Python tkinter 的轻量级桌面端应用
  • 本项目仅支持 Python 3.x,不考虑 兼容 Python 2.x
  • 本项目目前仅支持实体标注,未来将加入更多功能

二、使用指南

安装 Python 3.x

下载本项目

git clone https://github.com/SophonPlus/ChineseAnnotator.git 或直接下载 压缩包 并解压

开始标注

alt text alt text

  • 执行 python YEDDA_Annotator.py,启动标注程序
  • 在标注程序界面的右侧,设置快捷键,如 a: Action; b: Loc; c: Cont
  • 点击 ReMap 按钮,保存快捷键设置
  • 点击 Open 按钮,选择文件 (后缀必须为 .txt 或 .ann)
  • 选中文本,然后使用设置好的快捷键进行标注,标注格式形如 [@the text span#Location*]
  • 通过 RMOnRMOff 按钮,可以开启或关闭智能推荐
  • 智能推荐会根据已经手动标注的数据,自动标注未标注的数据。其格式为 [$the text span#Location*],并用绿色展示出来(注意:手动标注以 [@ 打头,而推荐标注则以 [$ 打头)
  • 标注结果与原始文件保存在同一个目录中,文件名为 "原文件名 + .ann"

管理标注工作

alt text

  • 执行 python YEDDA_Admin.py,启动管理程序
  • 点击 多人标注分析,然后选择多个 *.ann 文件,会给出不同标注结果的 F 值矩阵 alt text
  • 点击 配对比较,然后选择 2 个 *.ann 文件,会生成相应的对比报告 (报告为 .tex 格式,可以进一步编译为 .pdf 文件)。示例 pdf 报告如下:

alt text

其他(重要)功能

  1. ctrl + z 撤销最近 1 次的修改
  2. 选择已经标注的实体,或将光标置于已标注的实体范围内,按其他实体类别的快捷键 (如 x) 更新实体类别 (与 x 对应的实体),按 q,删除实体标注
  3. 选择已标注的文本,如 [@美国#Location*], 再按 q, 删除实体标注,即恢复到未标注的状态 (如"美国")
  4. 确认/删除推荐标注的实体:将光标置于推荐标注的实体范围内,按 y (确认),按 q (退出)
  5. 点击 export 按钮,会将 ".ann" 文件导出为同名的 ".anns" 文件(存放在同一目录下)。导出文件为序列标注的格式。
  • 源代码中,参数 self.seged 用于控制导出的行为。如果句子由空格间隔的单词构成(英文或已分词的中文),则该值应设置为 True,否则应设置为 False(如未分词的中文)
  • 另一个参数 self.tagScheme 控制导出的格式,".anns" 文件将使用 BMES 格式,如何该值为 "BMES",否则导出格式为 "BIO"

三、FAQ

  1. 为什么是桌面端应用?
  • 理由一:我们调研了其他的开源标注工具,包括 brat 在内的大部分工具,都有点太复杂了,难以扩展

  • 理由二:开发/维护 Web 应用,涉及到前/后端的工作,需要额外的知识和技能。我们相信在 NLP 领域,Python 的普及程度要远超 Web 开发,将项目限定在 Python 之内,能够让更多感兴趣的 NLP 业内人士参与其中,共同促进中文自然语言处理的发展

  1. 你们知道一个叫 Chinese-Annotator 的项目吗?
  • 当然!我们在一开始调研中文自然语言处理标注工具的时候,就注意到这个项目了。他们在 Wiki 中,详细总结了几款有代表性的标注工具,极大地帮助了我们调研工作的开展。

  • 但是,遗憾的是,截止目前 (2018-06-22) 为止,这个工具仍然处于开发阶段,尚不可用。这让我们萌生了开始本项目的想法。我们希望一开始就提供可以使用的工具,然后再在使用过程中快速地迭代完善。

  1. 为什么选择从 fork YEDA 开始?
  • 我们仔细调研了大量的标注工具,而 YEDA 可能是其中功能最简陋、代码最精简的项目了。但这恰恰是我们需要的,其他项目都太复杂,难以着手改造。

四、未来计划

  1. 采用 brat 的文件格式
  2. 采用 anafora 的可视化方式
  3. 加入规则标注功能
  4. 加入文本分类标注功能
  5. 加入主动学习功能
  6. ……

五、参考

项目 star fork 最后更新 值得借鉴之处
brat 575 212 2017-11-30 文件格式
IEPY 675 152 2016-10-14 主动学习、规则标注
anafora 82 25 2018-05-12 可视化方式
Chinese-Annotator 384 98 2018-03-06 调研/设计 文档
Prodigy - - - 交互方式

chineseannotator's People

Contributors

jiesutd avatar jinhuakst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.