修复了Unicode文本的一些问题

ftf的Python项目详细描述


ftfy:为您修复文本

TravisPyPI packageDocs

>>>print(fix_encoding("(ง'⌣')ง"))('⌣')

完整文档:https://ftfy.readthedocs.org

推荐信

  • “我的生活又变得宜居了!“。” -@planarrowspace
  • “灵巧的魔法” -@simonw
  • “为我节省了大量令人沮丧的开发工作” -@iancal
  • “弗菲立刻做了正确的事情,没有掩饰。出色的工作,解决了一个非常棘手的现实世界(整个世界!)问题。” -布伦南杨
  • “盖霍芬的帽子。我是梅农的布里根·本·德梅农,我是一个叫凯恩·科姆普莱森·马斯切宁的人,我是一个叫鲍恩·索朗格的人。:d英寸 -Bruno Ranieri
  • “我不知道什么时候需要这个,但我肯定会把它加上书签。” -/u/ocrow
  • “9.2/10” -pylint

在Luminoso开发

Luminoso为文本制作开创性的软件 在许多语言中,真正理解单词含义的分析。我们的 软件被企业客户使用,如索尼、英特尔、火星和苏格兰人, 它基于python和开源技术。

我们每天在鲁米诺索使用ftfy,因为理解文本的第一步 确保里面有正确的字符!

鲁米诺佐正在快速增长并招聘员工。如果你有兴趣加入我们 看看our careers page

它的功能

ftfy修复以各种方式中断的unicode。

ftfy的目标是接受错误的unicode并输出正确的unicode 在您的Unicode感知代码中。这与采用非Unicode和 输出Unicode,这不是FTFY的目标。它也不是为了 保护您不必编写支持Unicode的代码。Ftfy帮助那些帮助 他们自己。

当然,如果你的输入被正确解码并且没有 小故障。但你常常无法控制自己的输入;是某个人 别人错了,但现在是你的问题了。

ftfy将尽一切努力解决问题。

莫吉巴克

最有趣的是当有人 用一个标准编码Unicode并用另一个标准解码。这个 通常以字符的形式出现,这些字符变成无意义的序列(称为 “mojibake”):

  • 单词schön可能显示为schön
  • em破折号()可能显示为—
  • 原本要用引号括起来的文本可能会结束 而是包含在“â€<9d>中,其中<9d>表示 无法打印的字符。

ftfy使用启发式方法来检测和撤消这种mojibake,使用 误报率低。

ftfy的这一部分现在由simonw提供了一个非正式的web实现: https://ftfy.now.sh/

示例

fix_text是ftfy的主要功能。本节旨在为您提供 尝尝它能做的事。fix_encoding是更具体的函数 那只会治好莫吉巴克。

请阅读the documentation了解更多 关于ftfy做什么以及如何根据您的需要配置它的信息。

>>>print(fix_text('This text should be in “quotesâ€\x9d.'))Thistextshouldbein"quotes".>>>print(fix_text('ünicode'))ünicode>>>print(fix_text('Broken text&hellip; it&#x2019;s flubberific!',...normalization='NFKC'))Brokentext...it's flubberific!>>>print(fix_text('HTML entities &lt;3'))HTMLentities<3>>>print(fix_text('<em>HTML entities in HTML &lt;3</em>'))<em>HTMLentitiesinHTML&lt;3</em>>>>print(fix_text('\001\033[36;44mI&#x92;m blue, da ba dee da ba '...'doo&#133;\033[0m',normalization='NFKC'))I'm blue, da ba dee da ba doo...>>>print(fix_text('LOUD NOISES'))LOUDNOISES>>>print(fix_text('LOUD NOISES',fix_character_width=False))LOUDNOISES

安装

ftfy是一个python 3包,可以使用pip

pip install ftfy

(或者在python 2和3都是全局的系统上使用pip3 install ftfy 已安装,pip指的是python 2.)

如果您使用的是Python2.7,则可以安装旧版本:

pip install 'ftfy<5'

您还可以克隆这个git存储库并使用 python setup.py install

谁维护ftfy?

我是罗宾·斯皮尔(rspeer@luminoso.com)。我开发这个工具作为我的一部分 文本理解公司,Luminoso,在那里 证明是必要的。

Luminoso在 许可的麻省理工执照。

你可以在github上报告关于ftfy的错误,我们会处理它们。

引用ftfy

ftfy已被用作主要nlp研究的关键数据处理步骤。

付出是很重要的把功劳适当地归功于你所依靠的每一个人 在研究中。这包括软件,而不仅仅是高地位的贡献,比如 数学模型。当你使用ftfy进行研究时,我只要求你引用 它。

ftfy有一个可引用的记录on Zenodo。 ftfy的引用可能如下:

Robyn Speer. (2019). ftfy (Version 5.5). Zenodo.
http://doi.org/10.5281/zenodo.2591652

在bibtex格式中,引文是:

@misc{speer-2019-ftfy,
  author       = {Robyn Speer},
  title        = {ftfy},
  note         = {Version 5.5},
  year         = 2019,
  howpublished = {Zenodo},
  doi          = {10.5281/zenodo.2591652},
  url          = {https://doi.org/10.5281/zenodo.2591652}
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?