上下文感知正字法纠正的一般环境

Gecco的Python项目详细描述


[![语言机器徽章](http://applejack.science.ru.nl/lamabadge.php/gecco)](http://applejack.science.ru.nl/language machines/)
[![Codacy徽章](https://api.codacacacy.com/project/badge/grade/56e3881c80d68a80d68f2831d0f76f36f36f848c)(https://www.codacacacy.com/app/proycon/gecco)



============================================================================================================对于上下文感知的正字法校正
==一、二、二、二、二、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六一种通用的模块化分布式拼写纠正框架。旨在根据自己的数据集构建一个完整的上下文感知拼写更正系统。大多数模块都是独立于语言的,可以从
语料库中学习。框架中明确包括培训。该框架旨在
易于扩展,模块可以用python 3编写。此外,框架
是可伸缩的,可以分布在多个服务器上。

给定输入文本,GECCO将添加各种更正建议。

可以从命令行、python绑定、restful webservice或通过web应用程序(两个接口)调用系统。

**模块**:
-通用内置模块:
-**可混淆模块**
-可混淆模块能够识别根据上下文,通常
混淆词的哪个版本是正确的。例如,
"then"和"than"在英语中通常会混淆。
-您的配置应该指定哪些词可以混淆模块消除歧义。
-模块是使用igtree分类器实现的(k-近邻
approximation)在timbl中。
-**后缀confusible module**
-confusible module的变体,用于检查通常混淆的词形后缀而不是单词。
-您的配置应指定模块在哪些后缀之间消除歧义
-该模块使用timbl中的igtree分类器(k-近邻
近似)实现。
-**语言模型模块**
-语言模型预测哪些单词可能跟在其他单词后面,
类似于预测类型应用程序commo。只在
智能手机上找到。
-该模块使用timbl中的igtree分类器(k-近邻
近似值)实现。
-**Aspell模块**
-Aspell是基于开源词典的拼写更正软件。
thiS模块允许从GECCO使用Aspell。这不是一个
上下文敏感的方法。
-**hunstally模块**
-hunstally是一个基于词典的开放源码拼写纠正软件。
此模块允许从gecco使用hunstally。这不是
上下文敏感的方法。
-**词典模块**
-词典模块允许您从语料库数据自动生成词典并使用它。这不是上下文敏感的方法。
-键入的单词与词典匹配,模块将在一定的levenshtein距离内提供建议。
-**错误列表模块**
-错误列表模块是一个非常简单的模块,用于检查
单词是否在已知错误列表中,如果在已知错误列表中,则提供该列表中的建议。这不是一个上下文敏感的方法。
-**拆分模块**
-拆分模块检测拆分的单词,但应该将它们一起写入。
-使用colibri core实现
-**runon模块**
-runon模块检测作为一个单词写入但应
拆分的单词。
-使用colibri core实现
-**标点和重排模块**
-标点和重排模块尝试检测丢失的单词
标点符号、多余标点符号和缺少大写字母。
-该模块使用timbl中的igtree分类器(k近邻近似)实现。
-建议但尚未实现的模块:
-*语言检测模块*
-(尚未编写,稍后可选)
-*声音相似模块*
-(尚未编写,稍后可选)

**功能**
-通过使用GECCO模块API添加模块可轻松扩展
-语言无关
-内置培训管道(给定语料库输入):从源创建模型
-内置测试管道(给定带错误注释的测试语料库),返回每个模块的评估指标报告
-**分布式**,**多线程**&;**可扩展**:
-负载平衡:后端服务器可以在多个主机上运行,主进程分布其中的特性
-多线程,模块可以并行调用,模块服务器本身也可以多线程
-输入和输出是**folia xml**(http://proycon.github.io/folia)
-使用ucto从纯文本自动输入转换

gecco是成功的Valkuil.net和Fowlt.net的Essor。

=--
thub.com/proycon/pynlpl),需要folia支持(https://proycon.github.io/folia)
-[python ucto](http://proycon.github.com/python-ucto)&;[ucto](https://languagemachines.github.io/ucto)(依次取决于libfolia、ticcutils)
-*特定模块*:
-[timbl](https://languagemachines.github.io/timbl)*(必需)*
-[python-timbl](https://github.com/proycon/python-timbl)
-[colibri-core](https://github.com/proycon/colibri-core/)*(必需)*
-对于aspell模块:*(可选)*
-[aspell](http://aspell.net)
-aspell-python-py3
-对于hunstall模块:*(可选)*
-[hunstall](http://hunstall.github.io)
-[pyhunstall](https://github.com/smathot/pyhunstall)*(Mac OS X上不支持开箱即用)*
-*webservice*:*(可选)*
-[clam](https://proycon.github.io/clam)

GECCO,我们*强烈*建议您使用我们的Lamachine
发行版,可以从https://github.com/proycon/Lamachine获得。

Lamachine包括GECCO,可以以多种方式运行:作为虚拟机,
作为Docker应用程序,或作为设置Python V的编译脚本irtual
环境。

可能占用大量内存。因此,我们建议*至少*16GB RAM,
培训可能需要更多内存。对于不同的模块,可以通过增加频率阈值来减小模型大小,但这将以降低精度为代价。


gecco将只在posix投诉操作系统(即linux、bsd、mac os x)上运行,而不在windows上运行。

r/>----


要构建实际的拼写更正系统,您需要有语料库源
,并创建一个gecco配置,该配置使用所需的
参数启用所需的模块。

gecco系统由配置组成,可以是简单的python脚本或外部yaml配置文件。


yaml配置示例:

name:fowlt
path:/path/to/fowlt
language:en
modules用法:
-module:gecco.modules.confusibles.timblwordconfusible module
id:confusibles
源:
-train.txt
模型:
-confusible.model
confusibles:[then,than]

若要列出所有可用模块及其可能采用的参数,请运行"gecco--helpmodulees`.

或者,可以直接在python中完成配置,在这种情况下,脚本将是公开所有功能的工具:


ctor.append(timblwordconfusiblemodule("thennan",source="train.txt",test-crossvalidate=true,test=0.1,tune=0.1,model="confusible s.model",confusible=('then','than'))
corrector.append(timblwordconfusiblemodule("its",source="train.txt",test-crossvalidate=true,test=0.1,tune=0.1,model="confusibles.model",confusible=('its','s'))
corr)append(timblwordconfusiblemodule("errorlist",source="errorlist.txt",model="errorlist.model",servers=[(blah,1234),(blah2,1234))
corrector.append(timblwordconfusiblemodule("lexicon",source=["lexicon.txt","lexicon2.txt"],model=["lexicon.model","lexicon2.model"],servers=[(blah,1235))
corrector.main()



建议采用如下所述的文件/目录结构。如果计划使用多台主机,则应将其存储在共享网络驱动器上,以便所有主机都可以访问以下型号:

-yourconfiguration.yml
-sources/
-models/


gecco提供了一个示例性的英语拼写更正系统,该系统位于"example/"目录中。



----
服务器设置
----

`gecco<;yourconfig.yml>;运行<;input.folia.xml>;`用于处理给定的
folia文档或纯文本文档,它启动一个主进程,该主进程将调用所有模块,这些模块可能分布在多个服务器上。如果同一模块的多个服务器实例可用,则负载将分布在这些实例上。输出将以folia xml格式提供,并且
将包含更正建议。

要在主机上启动模块服务器,请发出"gecco<;yourconfig.yml>;start servers"。
如果不希望
全部启动,则可以选择指定要启动的服务器。您可以在同一台主机或
多台主机上多次启动服务器。主进程将在所有
服务器之间分配负载。

要停止服务器,请在每个运行服务器的主机上运行"gecco<;yourconfig.yml>;stop servers"。所有正在运行的服务器的列表可以通过"gecco
<;yourconfig.yml>;list servers"获得。

但这将对性能产生显著的负面影响,因此应予以避免。

----
[GECCO体系结构](https://raw.github.com/proycon/gecco/master/gecco_architecture.png"GECCO体系结构")

---------
命令行用法
---------


通过单个命令行工具调用所有GECCO功能

$GECCO myconfig.yml[子命令]






语法:


用法:gecco[-h]
{run、startservers、stopservers、startserver、train、evaluate、reset}


gecco是一个通用的、可扩展的、模块化的拼写更正框架

命令:
{run、startservers、stopservers、startserver、tra进入,评估,重新set}
在指定的输入文件上运行拼写更正程序
startservers启动所有配置为在当前主机上运行的模块服务器。为每个主机发出一次。
stopservers停止所有配置为在当前主机上运行的模块服务器。为每个主机发布一次。
listservers列出所有主机上的所有模块服务器
start server在指定端口上启动一个模块的服务器,使用
"start server s"代替
train-train-modules
eevaluate对输入数据运行拼写更正器,并将其与参考数据进行比较,生成评估报告
重置重置模块,删除所有具有
源的训练模型。如果您想重新启动
,请在培训前发布。




有关所有模块及其设置的重要文档可以通过以下途径获取:

$gecco--helpmodules

--------
gecco作为一个web服务
---------------------------


restul webservice访问将通过clam提供。我们仍在努力将其更好地集成到gecco中。现在,这里可以看到
的一个示例实现:
https://github.com/proycon/valkuil-gecco/tree/master/valkuilwebservice

le,以valkuil.net/fowlt.net为模型。








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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本