【NLP】pyhanlp flask
D:\ProgramData\Anaconda3\Lib\site-packages\pyhanlp\__init__.py 加入
WordVectorModel = LazyLoadingJClass('com.hankcs.hanlp.mining.word2vec.WordVectorModel')
# 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)
【NLP】pyhanlp flask的更多相关文章
- 【NLP】前戏:一起走进条件随机场(一)
前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...
- 【NLP】基于自然语言处理角度谈谈CRF(二)
基于自然语言处理角度谈谈CRF 作者:白宁超 2016年8月2日21:25:35 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- 【NLP】基于机器学习角度谈谈CRF(三)
基于机器学习角度谈谈CRF 作者:白宁超 2016年8月3日08:39:14 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都 ...
- 【NLP】基于统计学习方法角度谈谈CRF(四)
基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- 【NLP】条件随机场知识扩展延伸(五)
条件随机场知识扩展延伸 作者:白宁超 2016年8月3日19:47:55 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有应 ...
- 【NLP】Tika 文本预处理:抽取各种格式文件内容
Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重 ...
- [转]【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理 阅读目录
[NLP]干货!Python NLTK结合stanford NLP工具包进行文本处理 原贴: https://www.cnblogs.com/baiboy/p/nltk1.html 阅读目录 目 ...
- 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理
干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...
- 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...
随机推荐
- click只能点击一次
<select id="s_province" name="s_province" class="s_province">< ...
- 使用Html5+CSS3的优势
一:大多浏览器支持,低版本也没问题 我看点这方面的资料,是为了做手机应用网站(有三个方案,这个是备用方案),可以开发响应式网站,可以脱离开发平台进行跨平台. 在Html5网页中引入Mo ...
- WinForm窗体继承
在Windows应用程序中,从现有的窗体继承,查看子窗体的设计视图时,会出现错误: 服务容器中已存在服务 System.Windows.Forms.Design.IEventHandlerServic ...
- USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...
- SDRAM 学习笔记(一)
前面几篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选用FIFO,应该设置为位宽16bit, ...
- 关于Unity中的光照(七)
全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked ...
- GDB调试——常用的命令
首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令 ...
- MySQL查看某库表大小及锁表情况
查询所有数据库占用磁盘空间大小的SQL语句: 语句如下: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB ...
- remove docker ce fully on centos7
在centos7上用curl 安装了docker ce版本 删除的方法是 $ sudo yum -y remove docker-ce
- JavaSE(二)之继承、封装、多态
学习完类与对象终于认识到什么是类,什么是对象了.接下来要看的就是java的三大特征:继承.封装.多态. 一.封装(数据的隐藏) 在定义一个对象的特性的时候,有必要决定这些特性的可见性,即哪些特性对外部 ...