【NLP】pyhanlp flask
D:\ProgramData\Anaconda3\Lib\site-packages\pyhanlp\__init__.py 加入
WordVectorModel = LazyLoadingJClass('com.hankcs.hanlp.mining.word2vec.WordVectorModel')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | # coding=utf-8 from flask import Flask from flask import request from flask import jsonify from flask import make_response,Response from flask_cors import CORS from pyhanlp import * port = 9999 app = Flask(__name__) CORS(app, supports_credentials = True ) @app .route( '/' ) def index(): str = "Hello, AI Server!" print ( str ) return str # 成功请求 def successResp(data): return jsonify(code = 0 , message = "success" , data = data) # 错误请求 def errorResp(msg): return jsonify(code = - 1 , message = msg) # 分词服务 @app .route( '/NLPWordSplit' , methods = [ 'POST' ]) def NLPWordSplit(): Article = request.form.get( 'Article' ) print (Article) if Article = = None or Article = = "" : rst = make_response(errorResp( "请输入正确的数据!" )) rst.headers[ 'Access-Control-Allow-Origin' ] = '*' return rst word = "" for term in HanLP.segment(Article): curWord = str (term.word) if len (curWord) ! = 0 : word = word + " " + curWord print (word) return getResult(word) # 词向量服务 @app .route( '/NLPWordNearest' , methods = [ 'POST' ]) def NLPWordNearest(): Word = request.form.get( 'Word' ) print (Word) if Word = = None or Word = = "" : rst = make_response(errorResp( "请输入正确的数据!" )) rst.headers[ 'Access-Control-Allow-Origin' ] = '*' return rst try : # WordVectorModel = LazyLoadingJClass('com.hankcs.hanlp.mining.word2vec.WordVectorModel') # print(WordVectorModel) # MODEL_FILE_NAME = r"E:\Model.txt" # # 初始化模型 # word2vec = WordVectorModel(MODEL_FILE_NAME) # print(word2vec) if word2vec ! = None : print ( "相关词分析" ) word = word2vec.nearest(Word) print (word) data = "" for x in word: if data = = "": data = str (x).replace( "=" , ":" ) else : data = data + "," + str (x).replace( "=" , ":" ) print (data) word = "{" + data + "}" # word = json.dumps(word) # word = ','.join(word) print (word) return getResult(word) else : rst = make_response(errorResp( "单词分析错误!" )) rst.headers[ 'Access-Control-Allow-Origin' ] = '*' return rst except Exception as e: print ( "Exception:" ,e) finally : print ( "OK" ) def getResult(word): if word ! = "": # 如果成功返回预测结果 rst = make_response(successResp(word)) rst.headers[ 'Access-Control-Allow-Origin' ] = '*' return rst else : # 如果失败返回错误信息 rst = make_response(errorResp(word)) rst.headers[ 'Access-Control-Allow-Origin' ] = '*' return rst word2vec = None if __name__ = = '__main__' : # if not jpype.isThreadAttachedToJVM(): # jpype.attachThreadToJVM() # WordVectorModel = jpype.JClass("com.hankcs.hanlp.mining.word2vec.WordVectorModel") # print(WordVectorModel) MODEL_FILE_NAME = r "E:\Model.txt" # 初始化模型 word2vec = WordVectorModel(MODEL_FILE_NAME) print ( "port:" + str (port)) app.run(debug = True ,host = '0.0.0.0' ,port = port, threaded = True ) |
博客地址: http://www.cnblogs.com/defineconst/
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库