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的更多相关文章

  1. 【NLP】前戏:一起走进条件随机场(一)

    前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...

  2. 【NLP】基于自然语言处理角度谈谈CRF(二)

    基于自然语言处理角度谈谈CRF 作者:白宁超 2016年8月2日21:25:35 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  3. 【NLP】基于机器学习角度谈谈CRF(三)

    基于机器学习角度谈谈CRF 作者:白宁超 2016年8月3日08:39:14 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都 ...

  4. 【NLP】基于统计学习方法角度谈谈CRF(四)

    基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  5. 【NLP】条件随机场知识扩展延伸(五)

    条件随机场知识扩展延伸 作者:白宁超 2016年8月3日19:47:55 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有应 ...

  6. 【NLP】Tika 文本预处理:抽取各种格式文件内容

    Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重 ...

  7. [转]【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理 阅读目录

    [NLP]干货!Python NLTK结合stanford NLP工具包进行文本处理  原贴:   https://www.cnblogs.com/baiboy/p/nltk1.html 阅读目录 目 ...

  8. 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理

    干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...

  9. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)

    统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...

随机推荐

  1. Navi.Soft31.开发工具(含下载地址)

    1系统简介 1.1功能简述 在软件开发过程中,我们需要经常对字符串.文件.数据库操作.有时需要浏览Json格式串,有时需要浏览Xml格式串,有时需要读取txt或excel文件,有时需要对数据库访问.本 ...

  2. JQuery之拖拽插件

    一直以来,都对JS获取元素的位置感到非常的困惑:一会client.一会offset.一会scroll. 再加上各大浏览器之间的不兼容,唉,搞得哥晕晕乎乎的. 而很多页面效果都要用到这些位置.不得已,得 ...

  3. 【Python】python3-list列表引用

    print(names) #列出列表的内容 print(names[3]) #访问列表中第4个值 print(names[1:3]) #访问列表中从第2个到第3个的值 print(names[-1]) ...

  4. freetds设置超时

    freetds的超时一般在其配置文件中有设置,实际上程序中也可以设置,动用两个api dbsetlogintime dbsettime 设置在dbopen之前,如下所示: 表示设置登录超时5秒,读写超 ...

  5. C#或者.NET下的强制垃圾回收办法

    转载 2011年03月16日 17:21:00 标签: c# / .net / button / object / stream / class 8185 今天来谈谈C#的GC,也就是垃圾回收机制,非 ...

  6. Java获取正在执行的函数名

    利用StackTrace堆栈轨迹获取某个时间的调用堆栈状态. package com.dsp.demo; public class TechDemo { public static void main ...

  7. poj1276

    题目链接:http://poj.org/problem? id=1276 Cash Machine Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  8. Spring Boot 快速搭建的三种方式

    方式一:http://start.spring.io/ 打开浏览器,在地址栏中输入http://start.spring.io/ 如下图:  点击generate project 然后就会有一个zip ...

  9. bioperl 自动化下载genbank 中的序列

    当我们想要从genbank 中下载序列的时候,总需要点击右上角的download 按钮,选择对应的格式,然后通过浏览器进行下载,这样反复的点击很费时间了 其实可以通过bioperl 自动化的完成下载: ...

  10. u3d 场景资源打包

    搞了一天终于搞定u3d的场景打包,这样就可以不用修改太多程序,把资源放在外部修改了.好处多多 但是本来很简单的东西搞了一天,google来的说作为场景scene.unity 文件 打包成 unityd ...