修复了Unicode文本的一些问题
ftf的Python项目详细描述
ftfy:为您修复文本
>>>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… it’s flubberific!',...normalization='NFKC'))Brokentext...it's flubberific!>>>print(fix_text('HTML entities <3'))HTMLentities<3>>>print(fix_text('<em>HTML entities in HTML <3</em>'))<em>HTMLentitiesinHTML<3</em>>>>print(fix_text('\001\033[36;44mI’m blue, da ba dee da ba '...'doo…\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}
}