python 中文字数统计/分词

摘要:
因为想把一段文字分词,所以,需要明确一定的词语关系。随便的txt小说,就1mb多。要数数这1mb多的中文到底有多少字,多少分词,这些分词的词性是什么样的。2)再把小说根据正则表达法开始分词,获得小说中汉字总数3)将内存中的小说每段POST到提供分词服务的API里面去,获取分词结果4)按照API说明,取词素材:1、linux/GNU=˃debian/ubuntu12.04/Linuxmint13Preferred2、python3、中文分词API,这里我们使用的是http://www.vapsec.com/fenci/4、分词属性的说明文件下载http://vdisk.weibo.com/s/qR7KSFDa9ON或者http://ishare.iask.sina.com.cn/f/68191875.html这里已经写好了一个测试脚本。

因为想把一段文字分词,所以,需要明确一定的词语关系。

在网上随便下载了一篇中文小说。随便的txt小说,就1mb多。要数数这1mb多的中文到底有多少字,多少分词,这些分词的词性是什么样的。

这里是思路

1)先把小说读到内存里面去。

2)再把小说根据正则表达法开始分词,获得小说中汉字总数

3)将内存中的小说每段POST到提供分词服务的API里面去,获取分词结果

4)按照API说明,取词

素材:

1、linux/GNU => debian/ubuntu 12.04/Linuxmint 13Preferred
2、python
3、中文分词API, 这里我们使用的是 http://www.vapsec.com/fenci/
4、分词属性的说明文件下载 http://vdisk.weibo.com/s/qR7KSFDa9ON 或者 http://ishare.iask.sina.com.cn/f/68191875.html

这里已经写好了一个测试脚本。只是单个进程访问。还没有加入并发的测试。

在以后的测试中,我会加入并发的概念的。

下面是测试脚本 test.py

#!/usr/bin/env python#coding: utf-8
importsys
importurllib
importurllib2
importos
importre
from datetime importdatetime, timedelta


def url_post(word='My name is Jake Anderson', geshi="json"):
    url = "http://open.vapsec.com/segment/get_word"postDict ={
            "word":word,
            "format":geshi
    }
    
    
    postData =urllib.urlencode(postDict)
    request =urllib2.Request(url, postData)
    request.get_method = lambda : 'POST'
    #request.add_header('Authorization', basic)
    response =urllib2.urlopen(request)
    r =response.readlines()
    printr

if __name__ == "__main__":
    f = open('novel2.txt', 'r')
    #get Chinese characters quantity
    regex=re.compile(r"(?x) (?: [w-]+ | [x80-xff]{3} )")
    count =0
    for line inf:
        line = line.decode('gbk')
        line = line.encode('utf8')
        word = [w for w inregex.split(line)]
        count +=len(word)
    #print count
    f = open('novel2.txt', 'r')
    start_time =datetime.now()
    for line inf:
        line = line.decode('gbk')
        line = line.encode('utf8')
        word2 = [w for w inregex.split(line)]
        printline
        url_post(line)
    end_time =datetime.now()
    tdelta = start_time -end_time
    print "It takes " + str(tdelta.total_seconds()) + "seconds to segment " + str(count) + "Chinese words!"
    print "This means it can segment " + str(count/tdelta.total_seconds()) + "Chinese characters per second!"

novel2.txt 是下载的小说。这个小说1.2MB大小。大约有580000字吧。

小说是GBK的格式,所以下载后,要转码成 utf-8的格式。

可以看到的终端效果大致是这样的。

把小说中所有的词,进行远程分词服务。

python 中文字数统计/分词第1张

免责声明:文章转载自《python 中文字数统计/分词》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇把sql server 数据库中数据导出至excel表rss订阅的使用及原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

团队介绍&学长采访

1. 团队介绍       刘畅 博客园ID:森高Slontia 身份:PM 个人介绍: 弹丸粉 || 小说创作爱好者 || 撸猫狂魔 我绝对不知道,我一个写代码的怎么就当PM去了?         张安澜 博客园ID:MinstrelZ 身份:开发 个人介绍: 张安澜,来自北京航空航天大学2015级计算机学院,喜欢旅游,修仙党,lol大乱斗选手,吃鸡...

python 获取cookie,发送请求

获取cookie思路: 1、确认登录login接口,及登录所需参数(包括用户名、密码、uuid等参数); 2、确认uuid等参数的获取接口(一般是get请求); 3、凭借uuid等参数向login接口发起请求,获取响应报文中的cookie(不同的网站平台可能表示方法不一样,需区别对待); 示例代码: # -*- coding:UTF-8 -*- impor...

iPhone上将短信内容发送到指定邮箱的方法

iPhone上将短信内容发送到指定邮箱的方法 迄今为止,移动应用安全基本聚焦在以下几个方面,一是移动设备管理BYOD(bring your own device),二是移动恶意软件分析,三是移动设备用户隐私安全,四是移动操作系统内核漏洞挖掘。对普通用户而言,窃取用户隐私数据的恶意软件是很大的威胁。本篇文章旨在介绍一种如何将设备上的短信发送到指定邮箱中的方法...

python新建txt文件,并逐行写入数据

#coding=utf-8txtName = "codingWord.txt"f=file(txtName, "a+")for i in range(1,100): if i % 2 == 0: new_context = "C++" + ' ' f.write(new_context) else:...

python使用imap-tools模块下载邮件中的附件

最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来. 环境: python3.8; imap-tools 0.39.0 需要pip 安装一下imap-tools模块 imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起...

python调用oracle存储过程

oracle 存储过程 python调用oracle存储过程 -- 通过cx_Oracle连接 import cx_Oracle # 连接数据库 orcl_engine = 'scott/s123@xxxx:1521/orcl' conn = cx_Oracle.connect(orcl_engine) # 创建游标 cursor = conn.curso...