• gensim自然语言处理


    最近在做词语的相似度做比较,就选用了gensim

    首先要安装gensim库,此处省略,参看官网http://radimrehurek.com/gensim/install.html

    在网上下了一些词库

    {"date": "2016-05-01", "content": "京东家电  沸腾五一 买家电 上京东4.28-5.7 邯郸京东帮联动会 馆陶站   大型文艺汇演 五一会员狂欢会,凭券入场更实惠 买家电 ,上京东,突破底线  限时抢购! 京东帮 馆陶文卫街服务店 大型文艺汇演现场 活动日期2}

    import sys
    import jieba
    reload(sys)
    sys.setdefaultencoding("utf-8")
    from gensim import corpora,models,similarities
    alist = []

    import json

    def fenci():
    for i_text in open("xaa.json"): #读取文文件
    f_json = json.loads(i_text)
    kk = f_json["content"]
    item_str = jieba.cut(kk.encode("utf-8"),cut_all=True) #使用jieba分词
    a = " ".join(item_str)
    alist.append(a)

    fenci()

    class MyCorpus(object):
    def __iter__(self):
    for item_str in alist:
    yield item_str.split(' ')

    Corp = MyCorpus()
    dictionary = corpora.Dictionary(Corp)
    corpus = [dictionary.doc2bow(text) for text in Corp]

    tfidf = models.TfidfModel(corpus)

    corpus_tfidf = tfidf[corpus]
    def test_kk(test):
    test_cut_raw_1 = jieba.cut(test)
    doc_new = " ".join(test_cut_raw_1)
    test_corpus_1 = dictionary.doc2bow(doc_new.split())
    vec_tfidf = tfidf[test_corpus_1]

    index = similarities.MatrixSimilarity(corpus_tfidf)

    sims = index[vec_tfidf]
    similarit = list(sims)

    #print(list(enumerate(sims)))
    sims = sorted(enumerate(sims), key=lambda item: -item[1])
    print(sims) #打印出相似度结果

    def buss_mian():
    while True:
    test = raw_input("please input test:")
    test_kk(test)

    if __name__ == "__main__":

    buss_mian()

    欢迎指导学习交流!!!!!!!
  • 相关阅读:
    yarn 国内加速,修改镜像源
    Gradle Wrapper 介绍
    使用 Gradle 快速创建 Java 项目
    Gradle 安装
    gradle 国内加速,修改镜像源
    maven 国内加速,修改镜像源
    java如何对map进行排序详解(map集合的使用)
    Java8 Collections.sort()及Arrays.sort()中Lambda表达式及增强版Comparator的使用
    给定字符串正整数,进行排序并返回排序后字符串
    Linux学习118 nginx与php结合实现web网站及优化
  • 原文地址:https://www.cnblogs.com/Edwardzhao/p/6866844.html
Copyright © 2020-2023  润新知