https://github.com/jannson/yaha

# -*- coding: utf-8 -*-
"""
Created on Wed Aug 10 08:35:55 2016 @author: Administrator
""" # -*- coding=utf-8 -*-
import sys, re, codecs
import cProfile
from yaha import Cuttor, RegexCutting, SurnameCutting, SurnameCutting2, SuffixCutting
from yaha.wordmaker import WordDict
from yaha.analyse import extract_keywords, near_duplicate, summarize1, summarize2, summarize3 '''
项目网址
https://github.com/jannson/yaha
''' str = '唐成真是唐成牛的长寿乡是个1998love唐成真诺维斯基'
cuttor = Cuttor() # Get 3 shortest paths for choise_best
#cuttor.set_topk(3) # Use stage 1 to cut english and number
cuttor.set_stage1_regex(re.compile('(\d+)|([a-zA-Z]+)', re.I|re.U)) # Or use stage 2 to cut english and number
#cuttor.add_stage(RegexCutting(re.compile('\d+', re.I|re.U)))
#cuttor.add_stage(RegexCutting(re.compile('[a-zA-Z]+', re.I|re.U))) # Use stage 3 to cut chinese name
#surname = SurnameCutting()
#cuttor.add_stage(surname) # Or use stage 4 to cut chinese name
surname = SurnameCutting2()
cuttor.add_stage(surname) # Use stage 4 to cut chinese address or english name
suffix = SuffixCutting()
cuttor.add_stage(suffix) #seglist = cuttor.cut(str)
#print '\nCut with name \n%s\n' % ','.join(list(seglist)) #seglist = cuttor.cut_topk(str, 3)
#for seg in seglist:
# print ','.join(seg) #for s in cuttor.cut_to_sentence(str):
# print s #str = "伟大祖国是中华人民共和国"
#str = "九孔不好看来"
#str = "而迈入社会后..."
str = "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" #You can set WORD_MAX to 8 for better match
#cuttor.WORD_MAX = 8 #Normal cut()
seglist = cuttor.cut(str)
print 'Normal cut \n%s\n' % ','.join(list(seglist)) #All cut
seglist = cuttor.cut_all(str)
print 'All cut \n%s\n' % ','.join(list(seglist)) #Tokenize for search
print 'Cut for search (term,start,end)'
for term, start, end in cuttor.tokenize(str.decode('utf-8'), search=True):
print term, start, end re_line = re.compile("\W+|[a-zA-Z0-9]+", re.UNICODE)
def sentence_from_file(filename):
with codecs.open(filename, 'r', 'utf-8') as file:
for line in file:
for sentence in re_line.split(line):
yield sentence def make_new_word(file_from, file_save):
word_dict = WordDict()
#word_dict.add_user_dict('www_qq0')
for sentence in sentence_from_file(file_from):
word_dict.learn(sentence)
word_dict.learn_flush() str = '我们的读书会也顺利举办了四期'
seg_list = word_dict.cut(str)
print ', '.join(seg_list) word_dict.save_to_file(file_save) #最大熵算法得到新词
#def test():
# make_new_word('qq0', 'www_qq0')
#cProfile.run('test()')
#test() #test: Get key words from file
def key_word_test():
filename = 'key_test.txt'
with codecs.open(filename, 'r', 'utf-8') as file:
content = file.read()
keys = extract_keywords(content)
#print ','.join(keys)
print summarize1(content)
print summarize2(content)
print summarize3(content)
#key_word_test() #比较文本的相似度(注意将两个文本文件保存为UTF-8)
def compare_file():
file1 = codecs.open('f1.txt', 'r', 'utf-8')
file2 = codecs.open('f2.txt', 'r', 'utf-8')
print 'the near of two files is:', near_duplicate(file1.read(), file2.read())
compare_file()

关于yaha中文分词(将中文分词后,结合TfidfVectorizer变成向量)的更多相关文章

  1. python中文分词:结巴分词

    中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 采用了动态规 ...

  2. python 中文分词:结巴分词

    中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 采用了动态规 ...

  3. 为Elasticsearch添加中文分词,对比分词器效果

    http://keenwon.com/1404.html Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器).english(英文分词)和chi ...

  4. 为 Elasticsearch 添加中文分词,对比分词器效果

    转自:http://keenwon.com/1404.html 为 Elasticsearch 添加中文分词,对比分词器效果 Posted in 后端 By KeenWon On 2014年12月12 ...

  5. SQLServer乱码问题的分析及解决方法(中文字符被存入数据库后,显示为乱码)

    注:本文为个人转存,原文地址:http://blog.csdn.net/qiuyu8888/article/details/8021410 问题:SQL版在使用过程中有时会出现乱码,我的症状是中文字符 ...

  6. 可定制的分词库——Yaha(哑哈)分词

    可定制的分词库——Yaha(哑哈)分词在线测试地址:http://yaha.v-find.com/ 部署于GAE yahademo.appspot.comYaha分词主要特点是把分词过程分成了4个阶段 ...

  7. 【转】cygwin中文乱码(打开gvim中文乱码、安装svn后乱码)

    想用cygwin less看log,可能包含德语.格式是乱的,很多类似"ESC"之类的乱码. 结果这个解决方案似乎也不错,有排版,有颜色高亮. ------------------ ...

  8. cookie不支持中文,必须转码后存储,否则会乱码

    cookie不支持中文,必须转码后存储,否则会乱码 Cookie ck = new Cookie("username", URLEncoder.encode(name, " ...

  9. ElasticSearch已经配置好ik分词和mmseg分词(转)

    ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引 ...

  10. Elasticsearch拼音分词和IK分词的安装及使用

    一.Es插件配置及下载 1.IK分词器的下载安装 关于IK分词器的介绍不再多少,一言以蔽之,IK分词是目前使用非常广泛分词效果比较好的中文分词器.做ES开发的,中文分词十有八九使用的都是IK分词器. ...

随机推荐

  1. 如何把TOMCAT 添加到服务中自动启动

    1.配置系统参数: JAVA_HOME:C:\Program Files\Java\jdk1.8.0_51   //本机Jdk的安装路径,已配置相关Java应用的无需再配置. CATALINA_HOM ...

  2. windows环境下XAMPP安装、多域名多端口配置、与python环境并存

    一.去xampp官网下载最新版本的安装包,安装一般软件的安装步骤,一直下一步,不过如果你想安装到指定目录中的话,在选择安装位置的时候设置想要安装的位置. 二.我们在工作中经常遇到同时调试多个网站的情况 ...

  3. SOA的概念

    面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中 ...

  4. springboot系列之-log

    配置文件以application.yml为例说明: Spring Boot默认的日志组件为Logback. 一. 日志配置参数: logging: file: #日志文件,绝对路径或相对路径 path ...

  5. Android-->Genymotion虚拟机(模拟器)的配置

    --> Genymotion 是一套完整的工具,它提供了Android虚拟环境.它简直就是开发者.测试人员.推销者甚至是游戏玩家的福音. 我只能说非常好用,模拟器中顶级,具体好处可以度娘. -- ...

  6. 《C与指针》第三章练习

    本章问题 1.What is the range for characters and the various integer types on your machine? (在你的机器上,字符型和整 ...

  7. 外观模式(Facade Pattern)

    一.引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ...

  8. AFX_MANAGE_STATE(AfxGetStaticModuleState())DLL导出函数包含MFC资源

    AFX_MANAGE_STATE(AfxGetStaticModuleState()) 先看一个例子: .创建一个动态链接到MFC DLL的规则DLL,其内部包含一个对话框资源.指定该对话框ID如下: ...

  9. excel表格中关于 撤销工作表保护密码

    利用宏处理,代码如下: Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m A ...

  10. yii2整理

    对于yii的研究,还没有那么深刻,之所以在这种情况下写,还是考虑到了后来入门人没有中文资料,而又无可下手的尴尬境地.希望对新手和我自己多一份帮助吧.总结几个自己的经验吧.环境的配置我就不做解释了.这个 ...