【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模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...
随机推荐
- node学习笔记2——搭建服务器
搭建服务器关键词: require('http') —— 请求 node 里面的 http 模块 createServer —— 创建一个服务器 request —— 请求 response—— 响应 ...
- [JS] js数字位数太大导致参数精度丢失问题
http://www.cnblogs.com/littlestart/p/6023976.html
- C# .NET - Sql Bulk Insert from multiple delimited Textfile using c#.net
SqlBulkCopy.WriteToServer has 4 overloads:SqlBulkCopy.WriteToServer (DataRow[]) Copies all rows f ...
- java-趣味算法
最近学习了python,看得懂,但真不愿意写python的代码. 我想了想,java是我的专业和强项,我为什么要抛之而顾它呢,自己也不感兴趣 我在自己的领域做到专业就行了,别人的领域让别人去搞吧 先一 ...
- SSH框架环境搭建问题:java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
SSH框架启动tomcate时出错 严重: Exception sending context initialized event to listener instance of class org. ...
- (笔记)电路设计(十一)之DC/DC电源转换方案设计应用
十大 法则之一:搞懂什么是DC/DC电源以及DC/DC转换电路分类 DC/DC电源电路又称为DC/DC转换电路,其主要功能就是进行输入输出电压转换.一般我们把输入电源电压在72V以内的电压变换过程称为 ...
- e791. 为JSpinner定制编辑器
This example replaces the default editor (a JFormattedTextField) in a spinner component with a custo ...
- TPshop隐藏index.php
有些朋友提到关于TPshop 隐藏index.php 一问题, 可以修改 Application\Common\Conf\config.php 文件代码 'common', 'AUTH_CODE' = ...
- unity--------------------------WheelCollider和小车实验的总结
WheelCollider总结 写了前面两篇文章,我想总结一下WheelCollider! 让我们能够更清晰的学会物理车的开发! 1.车的层次结构 一般这样分,车身,车身的包围盒,四个轮子和四个轮子的 ...
- Couchbase 如何设置密码;bucketPassword设置密码
Couchbase 默认创建的 bucket(桶)是没有密码的,那么在 web.config 里面的连接字符串是这样的 <!--配置缓存开始--> <configSection ...