snownlp和nltk啥关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了snownlp和nltk啥关系相关的知识,希望对你有一定的参考价值。
没什么关系吧。 SnowNLP的开发者在GitHub描述中提到是受TextBlobd的启发才写的SnowNLP,而这两个类库的最大区别就是SnowNLP具体实现的时候没有用nltk,主要针对中文文本处理。 参考技术A Awesome XXX 系列资源整理由 vinta 发起维护内容包括:Web框架、中国络爬虫、中国络内容提取、模板引擎、数据库、数据视化、图片处理、文本处理、自语言处理、机器习、志、代码析等 伯乐线已 GitHub 发起「Python 资源全文版」整理欢迎扩散、欢迎加入 GitHub - jobbole/awesome-python-cn: Python资源全文版 环境管理 管理 Python 版本环境工具 p – 非简单交互式 python 版本管理工具 pyenv – 简单 Python 版本管理工具 Vex – 虚拟环境执行命令 virtualenv – 创建独立 Python 环境工具 virtualenvwrapper- virtualenv 组扩展 包管理 管理包依赖工具 pip – Python 包依赖关系管理工具 pip-tools – 保证 Python 包依赖关系更新组工具 conda – 跨平台Python 二进制包管理工具 Curdling – 管理 Python 包命令行工具 wheel – Python 发新标准意取代 eggs 包仓库 本 PyPI 仓库服务中国 warehouse – 代 PyPI Warehousebandersnatch – PyPA 提供 PyPI 镜像工具 devpi – PyPI 服务打包/测试/发工具 localshop – 本 PyPI 服务(自定义包并且自 PyPI 镜像) 发 打包执行文件便发 PyInstaller – Python 程序转换独立执行文件(跨平台) dh-virtualenv – 构建并 virtualenv 虚拟环境作 Debian 包发布 Nuitka – 脚本、模块、包编译执行文件或扩展模块 py2app – Python 脚本变独立软件包(Mac OS X) py2exe – Python 脚本变独立软件包(Windows) pynsist – 用创建 Windows 安装程序工具安装程序打包 Python本身 构建工具 源码编译软件 buildout – 构建系统组件创建组装部署应用 BitBake – 针嵌入式 Linux 类似 make 构建工具 fabricate – 任何语言自找依赖关系构建工具 PlatformIO – 平台命令行构建工具 PyBuilder – 纯 Python 实现持续化构建工具 SCons – 软件构建工具 交互式解析器 交互式 Python 解析器 IPython – 功能丰富工具非效使用交互式 Python bpython- 界面丰富 Python 解析器 ptpython – 高级交互式Python解析器 构建于python-prompt-toolkit 文件 文件管理 MIME(用途中国际邮件扩充协议)类型检测 imghdr – (Python 标准库)检测图片类型 mimetypes – (Python 标准库)文件名映射 MIME 类型 path.py – os.path 进行封装模块 pathlib – (Python3.4+ 标准库)跨平台、面向象路径操作库 python-magic- 文件类型检测第三库 libmagic Python 接口 Unipath- 用面向象式操作文件目录 watchdog – 管理文件系统事件 API shell 工具 期间 操作期间类库 arrow- 更 Python 期间操作类库 Chronyk – Python 3 类库用于解析手写格式间期 dateutil – Python datetime 模块扩展 delorean- 解决 Python 关期处理棘手问题库 moment – 用处理间期Python库灵自于Moment.js PyTime – 简单易用Python模块用于通字符串操作期/间 pytz – 现代及历史版本世界区定义区数据库引入Python when.py – 提供用户友函数帮助用户进行用期间操作 文本处理 用于解析操作文本库 通用 chardet – 字符编码检测器兼容 Python2 Python3 difflib – (Python 标准库)帮助我进行差异化比较 ftfy – 让Unicode文本更完整更连贯 fuzzywuzzy – 模糊字符串匹配 Levenshtein – 快速计算编辑距离及字符串相似度 pangu.py – 韩语字符数字字母间添加空格 pyfiglet -figlet Python实现 shortuuid – 器库用简洁明白URL 安全 UUID unidecode – Unicode 文本 ASCII 转换形式 uniout – 打印读字符转义字符串 xpinyin – 用于汉字转换拼音库 Slug化 awesome-slugify – Python slug 化库保持 Unicode python-slugify – Python slug 化库 unicode 转化 ASCII unicode-slugify – slug 工具 unicode slugs ,需要依赖 Django 解析器 phonenumbers – 解析格式化储存验证电号码 PLY – lex yacc 解析工具 Python 实现 Pygments – 通用语高亮工具 pyparsing – 通用解析器框架 python-nameparser – 名解几独立部 python-user-agents – 浏览器 user agent 解析器 sqlparse – 验证 SQL 解析器 特殊文本格式处理 些用解析操作特殊文本格式库 通用 tablib – 用处理表格数据模块 Office Marmir – 输入Python 数据结构转换电表单 openpyxl – 用读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件库 python-docx – 读取查询及修改 Microsoft Word 2007/2008 docx 文件 unoconv – LibreOffice/OpenOffice 支持任意文件格式间进行转换 XlsxWriter – 用于创建 Excel .xlsx 文件 Python 模块 xlwings – 使 Excel 便调用 Python 库(反亦)基于 BSD 协议 xlwt / xlrd – 读写 Excel 文件数据格式信息 relatorio – 模板化OpenDocument 文件 PDF PDFMiner – 用于PDF文档抽取信息工具 PyPDF2 – 割合并转换 PDF 页面库 ReportLab – 快速创建富文本 PDF 文档 Markdown Mistune – 快速并且功能齐全纯 Python 实现 Markdown 解析器 Python-Markdown – John Gruber’s Markdown Python 版实现 YAML PyYAML – Python 版本 YAML 解析器 CSV csvkit – 用于转换操作 CSV 工具 Archive unp – 用便解包归档文件命令行工具 自语言处理 用处理类语言库 NLTK – 先进平台用构建处理类语言数据 Python 程序 jieba – 文词工具 langid.py – 独立语言识别系统 Pattern – Python 中国络信息挖掘模块 SnowNLP – 用处理文文本库 TextBlob – 进行普通自语言处理任务提供致 API TextGrocery – 简单高效短文本类工具基于 LibLinear Jieba 文档 用项目文档库 Sphinx – Python 文档器 awesome-sphinxdoc MkDocs – Markdown 友文档器 pdoc – 替换Epydoc 库自 Python 库 API 文档 Pycco – 文编程(literate-programming)风格文档器 配置 用保存解析配置库 config – logging 模块作者写级配置模块 ConfigObj – INI 文件解析器带验证功能 ConfigParser – (Python 标准库) INI 文件解析器 profig – 通种格式进行配置具数值转换功能 python-decouple – 设置代码完全隔离 命令行工具 用于创建命令行程序库 命令行程序发 cement – Python 命令行程序框架 click – 通组合式创建精美命令行界面包 cliff – 用于创建命令行程序框架创建具层命令命令行程序 clint – Python 命令行程序工具 colorama – 跨平台彩色终端文本 docopt – Python 风格命令行参数解析器 Gooey – 条命令命令行程序变 GUI 程序 python-prompt-toolkit – 用于构建强交互式命令行程序库 产力工具 aws-cli – Amazon Web Services 通用命令行界面 bashplotlib – 终端进行基本绘图 caniusepython3 – 判断哪项目妨碍移植 Python 3 cookiecutter – cookiecutters(项目模板)创建项目命令行工具mteval-v13a.pl 和 NLTK BLEU 有啥区别?
【中文标题】mteval-v13a.pl 和 NLTK BLEU 有啥区别?【英文标题】:What is the difference between mteval-v13a.pl and NLTK BLEU?mteval-v13a.pl 和 NLTK BLEU 有什么区别? 【发布时间】:2018-02-15 11:55:35 【问题描述】:在 Python NLTK 中有一个 BLEU score 的实现,
nltk.translate.bleu_score.corpus_bleu
但我不确定它是否与mtevalv13a.pl script相同。
它们有什么区别?
【问题讨论】:
你为什么不比较它们呢?如果您对两种语言都不够了解,至少编辑您的问题并提供两种实现的链接。请参阅网站的帮助部分,了解如何编写能获得答案的好问题。 【参考方案1】:TL;DR
在评估机器翻译系统时使用https://github.com/mjpost/sacrebleu。
简而言之
不,NLTK 中的 BLEU 与 mteval-13a.perl
并不完全相同。
但它可以非常接近,请参阅https://github.com/nltk/nltk/issues/1330#issuecomment-256237324
nltk.translate.corpus_bleu
对应于mteval-13a.pl
最高 ngram 的 4 阶,但存在一些浮点差异
对比详情及使用的数据集可从https://github.com/nltk/nltk_data/blob/gh-pages/packages/models/wmt15_eval.zip下载或:
import nltk
nltk.download('wmt15_eval')
主要区别:
长期
mteval-13a.pl
和nltk.translate.corpus_bleu
之间有几个区别:
第一个区别是 mteval-13a.pl
带有自己的 NIST 标记器,而 BLEU 的 NLTK 版本是度量标准的实现,假设输入是预先标记的。
另一个主要区别是mteval-13a.pl
期望输入为.sgm
格式,而 NLTK BLEU 接受 python 字符串列表,请参阅README.txt in the zipball here for more information of how to convert textfile to SGM。
mteval-13a.pl
期望 ngram 顺序至少为 1-4。如果句子/语料库的最小 ngram 顺序小于 4,它将返回 0 概率,即 math.log(float('-inf'))
。为了模拟这种行为,NLTK 有一个 _emulate_multibleu
标志:
mteval-13a.pl
能够生成 NIST 分数,而 NLTK 没有 NIST 分数实施(至少目前还没有)
除了差异之外,NLTK BLEU 分数还包含更多功能:
处理原始 BLEU (Papineni, 2002) 忽略的边缘案例
见https://github.com/nltk/nltk/pull/1383同样为了处理 Ngram 的最大阶数
见https://github.com/nltk/nltk/blob/develop/nltk/translate/bleu_score.py#L175而NIST has a smoothing method 用于几何序列平滑,NLTK has an equivalent object with the same smoothing method 以及更多平滑方法来处理来自Chen and Collin, 2014 的句子级BLEU
最后,为了验证 NLTK 版本的 BLEU 中添加的功能,添加了回归测试来说明它们,请参阅https://github.com/nltk/nltk/blob/develop/nltk/test/unit/translate/test_bleu.py
【讨论】:
现在它是官方的,NLTK 中有 NIST 支持 =)以上是关于snownlp和nltk啥关系的主要内容,如果未能解决你的问题,请参考以下文章
Python文本分析(NLTK,jieba,snownlp)
SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库