well-Farasa工具箱的Python包装器
farasap的Python项目详细描述
目录
免责声明
This is a Pyhton API wrapper for farasa [http://qatsdemo.cloudapp.net/farasa/] toolkit. Although this work is licsenced under MIT, the original work(the toolkit) is strictly premitted for research purposes only. For any commercial uses, please contact the toolkit creators[http://qatsdemo.cloudapp.net/farasa/].
简介
Farasa是一个阿拉伯语NLP工具包,用于以下任务:
- 细分市场。在
- 堵塞。在
- 命名实体记录(NER)。在
- 词性标注(词性标注)。在
- 变音。在
工具箱是用Java语言构建和编译的。想要在不使用这个库的情况下使用它的开发人员可以直接从他们的代码中调用二进制文件。在
由于Pyhton是一种通用语言,并且在许多NLP任务中非常流行,因此从代码中自动调用工具箱将非常方便。这就是这个包装的地方。在
安装
pip install farasapy
如何使用
An interactive Google colab code of the library can be reached from here [https://colab.research.google.com/drive/1xjzYwmfAszNzfR6Z2lSQi3nKYcjarXAW?usp=sharing].
一句重要的话
- 在
该库是JavaJAR的一个warpper,它要求在系统中安装Java,并在路径中。同时,也不建议使用低于Java1.7的版本。在
在 - 在
有些二进制文件是强制性的重!在
在
概述
faraspy在不同的类中包装和维护工具箱的所有api,每个类都在单独的文件中。您需要从其文件导入感兴趣的类,如下所示:
^{pr2}$现在,如果您是第一次使用这个库,那么库需要先下载farasa工具包binareis。你不需要担心任何想法。每当您实例化它的任何类的对象时,该库都会首先检查二进制文件,如果不存在则下载它们。这是从FarasaStemmer
实例化一个对象的示例,用于首次使用库。在
stemmer = FarasaStemmer()
perform system check...
check java version...
Your java version is 1.8 which is compatiple with Farasa
check toolkit binaries...
some binaries are not existed..
downloading zipped binaries...
100%|███████████████████████████████████████| 200M/200M [02:39<00:00, 1.26MiB/s]
extracting...
toolkit binaries are downloaded and extracted.
Dependencies seem to be satisfied..
task [STEM] is initialized in STANDALONE mode...
让我们stem下面的例子:
sample =\
'''
يُشار إلى أن اللغة العربية يتحدثها أكثر من 422 مليون نسمة ويتوزع متحدثوها
في المنطقة المعروفة باسم الوطن العربي بالإضافة إلى العديد من المناطق ال
أخرى المجاورة مثل الأهواز وتركيا وتشاد والسنغال وإريتريا وغيرها.وهي اللغ
ة الرابعة من لغات منظمة الأمم المتحدة الرسمية الست.
'''
stemmed_text = stemmer.stem(sample)
print(stemmed_text)
'أشار إلى أن لغة عربي تحدث أكثر من 422 مليون نسمة توزع متحدثوها في منطقة معروف اسم وطن عربي إضافة إلى عديد من منطقة آخر مجاور مثل أهواز تركيا تشاد سنغال أريتريا غير . هي لغة رابع من لغة منظمة أمة متحد رسمي ست .'
您可能会注意到,对象实例化的最后一行声明对象是在STANDALONE模式下实例化的。faraspy和工具箱二进制文件一样,可以在两种不同的模式下运行:Interactive和Standalone。在
独立模式
在独立模式下,实例化对象每次执行任务时都会调用二进制文件。它将把输入文本放在一个临时文件中,用这个临时文件执行二进制文件,最后从另一个临时文件中提取输出。任务结束后,garbache会收集这些临时文件。请注意,某些二进制文件,,如发音符号,可能需要很长时间才能启动。因此,当您有长文本并且只想执行一次时,最好使用此选项。在
交互模式
在交互模式下,对象将在实例化后运行二进制文件。然后以交互方式捕获输入的文本。但是,用户应该小心不要放大行,因为输出可能与shell中的输出不一样。如果不需要这些类型的对象来避免代码中的任何意外行为,则最好使用my_obj.terminate()
终止{em1}$terminate。在
为了获得最佳实践,请使用INTERACTIVE模式,其中输入文本很小,需要多次执行任务。但是,STANDALONE模式最适合于大型输入文本,其中任务只需完成一次。在
要使用交互模式,只需将interactive=True
选项传递给对象构造函数。在
下面是一个以交互方式运行的分段API的示例。在
segmenter = FarasaSegmenter(interactive=True)
perform system check...
check java version...
Your java version is 1.8 which is compatiple with Farasa
check toolkit binaries...
Dependencies seem to be satisfied..
/path/to/the/library/farasa/__base.py:40: UserWarning: Be careful with large lines as they may break on interactive mode. You may switch to Standalone mode for such cases.
warnings.warn("Be careful with large lines as they may break on interactive mode. You may switch to Standalone mode for such cases.")
initializing [SEGMENT] task in INTERACTIVE mode...
task [SEGMENT] is initialized interactively.
segmented = segmenter.segment(sample)
print(segmented)
'يشار إلى أن ال+لغ+ة ال+عربي+ة يتحدث+ها أكثر من 422 مليون نسم+ة و+يتوزع متحدثوها في ال+منطق+ة ال+معروف+ة باسم ال+وطن ال+عربي ب+ال+إضاف+ة إلى ال+عديد من ال+مناطق ال+أخرى ال+مجاور+ة مثل ال+أهواز و+تركيا و+تشاد و+ال+سنغال و+إريتريا و+غير+ها . و+هي ال+لغ+ة ال+رابع+ة من لغ+ات منظم+ة ال+أمم ال+متحد+ة ال+رسمي+ة ال+ست .'
贡献
- 取消代码的荣誉归@Wissam Antoun所有[https://github.com/WissamAntoun/Farasa_Desegmenter]在他的仓库里[https://github.com/WissamAntoun/Farasa_Desegmenter]. 在
想引用吗?在
您可以从这里找到站点的发布列表:http://qatsdemo.cloudapp.net/farasa/。在
有用的URL
- 官方网站:http://alt.qcri.org/farasa/
- 来自GitHub的farasa主题:https://github.com/topics/farasa
- 由工具箱作者之一创建的包含WikiNews语料库的存储库:https://github.com/kdarwish/Farasa
- 项目
标签: