title: 中文文章分析
date: 2016-03-27 15:35:52
tags: qt
categories: qt
中文不像英文,一个单词就是一次单词,中文需要分段,一句话到底什么是主语,谓语,定语,动词,副词。需要分析和判断,我们学习中文都需要时日,计算机更需要了。而且关键词怎么分析,我们怎么知道一句话什么关键,什么不关键。所以我使用了
玻森专注中文语义分析技术,拥有丰富的经验积累。自主研发千万级中文语料库,为精准和深度的中文语义分析提供坚实基础,
可以实现对文章请感分析,文章关键词提取,文章主题句提取。
我也是基于玻森数据文章内容的。
<a href="http://bosonnlp.com/">玻森数据</a>
我在linux下用它们提供的pythonSDK制作完成。
#!/bin/env python
# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals
import json
import requests
KEYWORDS_URL = 'http://api.bosonnlp.com/keywords/analysis'
SUMMARY_URL = 'http://api.bosonnlp.com/summary/analysis'
CLASSIFY_URL = 'http://api.bosonnlp.com/classify/analysis'
import urllib
import os
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
f = file("./datas","w")
text = sys.argv[1]
params = {'top_k': 3}
data1 = json.dumps(text)
headers1 = {'X-Token': 'TsjL7xQk.4726.T9ImfphHUZKm'}
resp = requests.post(KEYWORDS_URL, headers=headers1, params=params, data=data1.encode('utf-8'))
for word in resp.json():
f.write(word[1])
f.write("\n")
#文章的类型分类(新闻)
s = []
s.append(text)
data3 = json.dumps(s)
headers3 = {'X-Token': 'TsjL7xQk.4726.T9ImfphHUZKm'}
resp = requests.post(CLASSIFY_URL, headers=headers3, data=data3.encode('utf-8'))
f.write(resp.text)
f.write("\n")
# 提取文章关键词
headers2 = {'X-Token': 'TsjL7xQk.4726.T9ImfphHUZKm'}
source2 = {
'not_exceed': 0,
'percentage': 0.2,
'title': ''}
source2['content'] = text;
resp = requests.post(
SUMMARY_URL,
headers=headers2,
data=json.dumps(source2).encode('utf-8'))
f.write(json.loads(resp.text))
f.close
<b>qt 提供了qproccess来实现对python代码的调用,据说可以用popen管道获取数据,我用的方式比较简单,将数据获取后写入文件,系统读取文件内容。</b>
从效果上看,文章分析的不错了,当然还有很大的提升空间。
当文章输入进数据库后,就可以索引了。
根据关键词,我们可以获取到文章全部内容。
我的数据库用的是简单的sqlite数据库,如果有条件可以考虑换换mysql,实现网络访问。
整体的调用就是如此,后续会添加其他的功能。希望能做得更牛一点。