对Zemberek GRPC服务器的请求

zemberek-grpc的Python项目详细描述


泽姆贝雷克gRPC

最新版本0.16.0

zemberek nlp通过一个称为grpc的远程过程调用框架提供了一些功能。grpc是一个高性能、开源的通用rpc框架。一旦Zemberek NLP gRPC服务器启动,其他应用程序就可以通过自动生成的客户端库本地访问远程服务

https://github.com/ahmetaa/zemberek-nlp

用docker启动gRPC服务器

您可以直接在计算机中使用它,也可以在Docker容器中与一起运行。

https://hub.docker.com/r/ryts/zemberek-grpc

与Docker一起运行

docker run -d --rm -p 6789:6789 --name zemberek-grpc ryts/zemberek-grpc

检查日志

docker logs -f zemberek-grpc

安装库和示例

pip install zemberek-grpc

Python客户端示例

#!/usr/bin/env python# -*- coding: utf-8 -*-importsysimportgrpcimportzemberek_grpc.language_id_pb2asz_langidimportzemberek_grpc.language_id_pb2_grpcasz_langid_gimportzemberek_grpc.normalization_pb2asz_normalizationimportzemberek_grpc.normalization_pb2_grpcasz_normalization_gimportzemberek_grpc.preprocess_pb2asz_preprocessimportzemberek_grpc.preprocess_pb2_grpcasz_preprocess_gimportzemberek_grpc.morphology_pb2asz_morphologyimportzemberek_grpc.morphology_pb2_grpcasz_morphology_gchannel=grpc.insecure_channel('localhost:6789')langid_stub=z_langid_g.LanguageIdServiceStub(channel)normalization_stub=z_normalization_g.NormalizationServiceStub(channel)preprocess_stub=z_preprocess_g.PreprocessingServiceStub(channel)morphology_stub=z_morphology_g.MorphologyServiceStub(channel)deffind_lang_id(i):response=langid_stub.Detect(z_langid.LanguageIdRequest(input=i))returnresponse.langIddeftokenize(i):response=preprocess_stub.Tokenize(z_preprocess.TokenizationRequest(input=i))returnresponse.tokensdefnormalize(i):response=normalization_stub.Normalize(z_normalization.NormalizationRequest(input=i))returnresponsedefanalyze(i):response=morphology_stub.AnalyzeSentence(z_morphology.SentenceAnalysisRequest(input=i))returnresponse;deffix_decode(text):"""Pass decode."""ifsys.version_info<(3,0):returntext.decode('utf-8')else:returntextdefrun():lang_detect_input='merhaba dünya'lang_id=find_lang_id(lang_detect_input)print("Language of ["+fix_decode(lang_detect_input)+"] is: "+lang_id)print("")tokenization_input='Merhaba dünya!'print('Tokens for input : '+fix_decode(tokenization_input))tokens=tokenize(tokenization_input)fortintokens:print(t.token+':'+t.type)print("")normalization_input='Mrhaba dnya'print('Normalization result for input : '+fix_decode(normalization_input))n_response=normalize(normalization_input)ifn_response.normalized_input:print(n_response.normalized_input)else:print('Problem normalizing input : '+n_response.error)print("")analysis_input='Kavanozun kapağını açamadım.'print('Analysis result for input : '+fix_decode(analysis_input))analysis_result=analyze(analysis_input)forainanalysis_result.results:best=a.bestlemmas=""forlinbest.lemmas:lemmas=lemmas+" "+lprint("Word = "+a.token+", Lemmas = "+lemmas+", POS = ["+best.pos+"], Full Analysis = {"+best.analysis+"}")if__name__=='__main__':run()

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

推荐PyPI第三方库


热门话题
java中最小长度的字数计算   java事务处理JavaEE 6   java如何进行5分钟刷新并检查txt是否被修改?   java可以同时拖动多个对象   变量长、双精度、字节、字符在Java中的用途是什么?   spring将XMLBean配置转换为java配置   java检测不可靠网络上的TCP丢失   Java:TCP加密、SSL和Netty   在java中,如何使用isAssignableFrom的映射避免多个if-else   在J2EE动态Web项目中找不到java CSS文件   java遍历领域查询到RealmList   安卓阅读网站内容Java   java如何修改/自定义/反编译Opera mini jar文件?   java死锁播放框架如何使用控制器中的参数检查@RestrictedResource?   java在MS Excel中导入xml文件我们如何使用Python或任何其他编程语言自动化此流程?   java如何暂停正在运行的线程并在需要时重新启动同一线程?