精华内容
下载资源
问答
  • russian_news_corpus:俄罗斯大众媒体阻止了文本的语料库。
  • 天池-零基础入门NLP新闻文本分类预训练Word2vec语料导入相关库读取数据加载语料训练语料保存模型 新闻文本分类 预训练Word2vec语料 导入相关库 import numpy as np import pandas as pd from gensim.models import ...

    新闻文本分类

    预训练Word2vec语料

    导入相关库

    import numpy as np
    import pandas as pd
    from gensim.models import word2vec
    

    读取数据

    train_df = pd.read_csv('../data/train_set.csv', sep='\t')
    test_df = pd.read_csv('../data/test_a.csv', sep='\t')
    

    加载语料

    list_data = list(pd.concat((train_df['text'], test_df['text']), axis=0, ignore_index=True).map(lambda x:x.split(' ')))
    

    训练语料

    model = word2vec.Word2Vec(list_data, min_count=1, window=10, size=120, seed=7)
    model.init_sims(replace=True)
    

    保存模型

    # 保存模型,供日後使用
    model.save("../emb/word2vec.h5")
    model = word2vec.Word2Vec.load("../emb/word2vec.h5")
    #输入与“3370”相近的10个词
    for key in model.wv.similar_by_word('3370', topn =10):
        print(key)
    
    展开全文
  • TF-IDF文本向量化及朴素贝叶斯文本分类

    千次阅读 热门讨论 2019-07-30 09:46:30
    文本corpus的格式是每行一篇文章,先经过分词,去停用词之后,再利用jieba.analyse.extract_tags(context,topK = N)进行提取出每个文本前10个重要的关键词。文本corpus_tags里面内容是对应的每一行文本的标签。 ...

    文本corpus的格式是每行一篇文章,先经过分词,去停用词之后,再利用jieba.analyse.extract_tags(context,topK = N)进行提取出每个文本前10个重要的关键词。文本corpus_tags里面内容是对应的每一行文本的标签。

    jieba分词和去停用词代码:

    import jieba
    
    # 创建停用词列表函数
    def stopwordslist():
        stopwords = [line.strip() for line in open('C:/Users/yin/Desktop/chinesestopwords.txt','r').readlines()]
        return stopwords
    
    # 对句子进行中文分词和去停用词函数
    def seg_depart(sentence):
        # 对文档中的每一行进行中文分词
        sentence_depart = jieba.cut(sentence.strip())
        # 创建一个停用词列表
        stopwords = stopwordslist()
        # 输出结果为outstr
        outstr = ''
        # 去停用词
        for word in sentence_depart:
            if word not in stopwords:
                if word != '\t':
                    outstr += word
                    outstr += " "
        #字符串转换成字节
        #outstr = outstr.encode()
        return outstr
    
    # 给出文档路径
    filename = "C:/Users/yin/Desktop/data16.txt"#输入文件路径
    outfilename = "C:/Users/yin/Desktop/data17.txt"#输出文件路径
    inputs = open(filename, 'r',encoding = 'utf-8')#注意文件的编码格式
    outputs = open(outfilename, 'w+',encoding = 'utf-8')
    
    # 将输出结果写入ou.txt中
    for line in inputs:
        line_seg = seg_depart(line)
        #输出每行的分词和去停用词结果,然后换行
        outputs.write(line_seg + '\n')
    outputs.close()
    inputs.close()
    print("删除停用词和分词成功!!!")
    

    分词和去停用词完成之后,再进行特征提取:

    import jieba.analyse
    with open('C:/Users/yin/Desktop/data17.txt','r',encoding = 'utf-8') as fr,open('C:/Users/yin/Desktop/data16.txt','w',encoding = 'utf-8') as fd:
    	for text in fr.readlines():
    		if text.split():#去除掉文本之间的空行,如果没有空行则不需要
    			keywords = jieba.analyse.extract_tags(text,topK = 10)
    			for item in keywords:
    				fd.write(item[0]+item[1])
    				fd.write(' ')
    				#fd.write(item[1])
    			fd.write('\n')
    print('输出成功....')
    

     得到的效果基本上如下图所示:(文本特征词和标签)

    然后就把上述的两个文件导入到下方的代码中实现向量化和分类器:(训练和测试的数据按照7:3进行随机切割的)

    import numpy as np
    from sklearn.naive_bayes import GaussianNB
    
    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.metrics import classification_report,accuracy_score
    
    from sklearn.model_selection import train_test_split # 切割数据---train + test
    from sklearn import preprocessing # 结果评估
    
    corpus = open("C:/Users/yin/Desktop/data16.txt","r",encoding="utf-8-sig")
    corpus_tags = open("C:/Users/yin/Desktop/data14.txt","r",encoding="utf-8-sig")
    
    
    cv=TfidfVectorizer(binary=False,decode_error='ignore',stop_words='english')
    vec=cv.fit_transform(corpus.readlines())
    arr=vec.toarray() #文本特征值矩阵向量arr
    #print(arr)
    
    dicts = {"教育":0,"生活家":1,"汽车控":2,"私房话":3,"养生堂":4,"育儿":5,"财经迷":6,"职场":7,
    "旅游":8,"搞笑":9,"八卦精":10,"星座":11,"体育":12,"美食":13,"时尚圈":14,"游戏":15,
    "萌宠":16,"科技咖":17,"军事":18,"历史":19}
    
    a = np.array(list(map(lambda x: dicts[x.strip()], corpus_tags))) #标签矩阵向量a
    
    
    X_train,X_test, y_train, y_test =train_test_split(arr,a,test_size=0.3, random_state=0)#把文本特征向量和标签向量分割成训练集和测试集
    
    
    def test_gaussian_nb():
        X = X_train
        Y = y_train
     
        gnb = GaussianNB()
        gnb.fit(X, Y)
        
        result = gnb.predict(X_test)
        print(classification_report(y_test,result))
     
    if __name__ == '__main__':
        test_gaussian_nb()
    

    可以得到一个简单的分类评价效果:

     

    以上就是一些简单的过程,欢迎交流,谢谢!

     

    展开全文
  • 而模型需要的文本格式为[batch_size,word_length],所以要把我们的文件格式转换成模型可以接受的格式。 读取文本 先来看下我们的文本格式。如下图所示,我们只需要下面的文本的前两列,并把它们放到list里面 如图所...

    近期在学习Transformer模型。想用这个模型做一个中英翻译的小项目。Transformer模型是Github上下载下来的模型。该模型已经搭建完成。只需要我们把自己的数据输入进去就可以。而模型需要的文本格式为[batch_size,word_length],所以要把我们的文件格式转换成模型可以接受的格式。

    读取文本

    先来看下我们的文本格式。如下图所示,我们只需要下面的文本的前两列,并把它们放到list里面
    在这里插入图片描述

    如图所示:
    在这里插入图片描述

    把数据转化为subwords格式

    把数据转化为subwords格式。既每个单词和每个字都有唯一的数字可以代替。其中要用到这个tfds.features.text.SubwordTextEncoder.build_from_corpus()函数。

    tokenizer_en = tfds.features.text.SubwordTextEncoder.build_from_corpus((' '.join(e) for e in enlish), target_vocab_size=2**13)
    tokenizer_cn = tfds.features.text.SubwordTextEncoder.build_from_corpus(( e for e in chines), target_vocab_size=2**13)
    

    转化完毕以后我们测试一下:

    在这里插入图片描述

    把数据转化为向量

    cn = [tokenizer_cn.encode(line)for line in chines]
    en= [tokenizer_en.encode(' '.join(line))for line in enlish]
    

    转化为向量之后我们需要在每条语句向量的最前面和最后面添加star和end的token 方便模型知道什么时候开始什么时候结束。

    en_ = []
    for i in en :
        en_.append([tokenizer_en.vocab_size]+list(i)+[tokenizer_en.vocab_size+1])
    cn_ = []
    for i in cn :
        cn_.append([tokenizer_cn.vocab_size]+list(i)+[tokenizer_cn.vocab_size+1])
    

    添加之后我们要把我们的向量补成统一长度,用0做填充。短的在后面补0长的把后面的信息切掉。用到了tf.keras.preprocessing.sequence.pad_sequences()

    en_text=tf.keras.preprocessing.sequence.pad_sequences(
        en_, maxlen=40, dtype='int32', padding='post',
        value=0.0)
    cn_text=tf.keras.preprocessing.sequence.pad_sequences(
        cn_, maxlen=40, dtype='int32', padding='post',
        value=0.0)
    

    这样我们就会获得两类数据。一类是输入数据en_text ,一类是标签cn_text。这时候的数据类型还是numpy的数据类型然后我们要把数据转化为Tensorflow可以接受的类型。

    en_batch = tf.data.Dataset.from_tensor_slices(en_text)
    cn_batch = tf.data.Dataset.from_tensor_slices(cn_text)
    

    然后在使用tensorflow中的padded_batch() 函数。把数据分割成[batch_size,word_length]格式

    en_batch  = en_batch.padded_batch(64)
    cn_batch = cn_batch.padded_batch(64)
    

    最后我们在检查下输出的数据。正好和我们要的一样:[batch_size,word_length] 64个语句一组,每个语句长都为40。
    在这里插入图片描述
    数据集:https://download.csdn.net/download/weixin_43788143/12700110
    代码:https://download.csdn.net/download/weixin_43788143/12700114

    展开全文
  • 布朗语料库是美国英语的首个文本语料库,它取自不同主题的报纸文本、书籍以及政府文件,包含 1,014,312 个单词的它主要用于语言建模。 cats.csv brown-meta.json brown.csv Brown Corpus 布朗语料库_datasets....
  • 例如 我有一个语料:# corpus = ["我 来到 北京 清华大学", # 第一类文本切词后的结果,词之间以空格隔开# "他 来到 了 网易 杭研 大厦", # 第二类文本的切词结果# "小明 硕士 毕业 与 中国 科学院", # 第三类文本的...

    例如 我有一个语料:

    # corpus = ["我 来到 北京 清华大学",  # 第一类文本切词后的结果,词之间以空格隔开

    #           "他 来到 了 网易 杭研 大厦",  # 第二类文本的切词结果

    #           "小明 硕士 毕业 与 中国 科学院",  # 第三类文本的切词结果

    #           "我 爱 北京 天安门"]  # 第四类文本的切词结果

    这样的时候我运行:

    vectorizer = TfidfVectorizer(min_df=1)

    vectorizer.fit_transform(corpus)

    print(vectorizer.transform(corpus).toarray()

    出来正常的如下面:

    [[0. 0.52640543 0. 0. 0. 0.52640543

    0.66767854 0. 0. 0. ]

    [0. 0. 0.52547275 0. 0. 0.41428875

    0.52547275 0. 0. 0. 0. 0.52547275]

    [0.4472136 0. 0. 0. 0.4472136 0.

    0.4472136 0. 0.4472136 0.4472136 0. ]

    [0. 0.6191303 0. 0.78528828 0. 0.

    ]]

    但是当我的corpus 这个列表非常大的时候例如长度为1w的时候。

    我在运行上面的代码,出来的矩阵每一行除了一个是 1 之外 其余都是 0 ?

    这是为什么呢?

    展开全文
  • 前段时间试了一下用另一个corpus来做同样的事情,但是效果很差 今天想用timit corpus来试一试 在修改run.sh脚本过程中遇到了很多问题,主要是对shell脚本操作不熟悉 其中有一个步骤是需要制作corpus中的wav的sc
  • 文章目录Task2TF-IDFTFIDFTF-IDF使用TF-IDF表示文本Reference Task2 学习TF-IDF理论并实践,使用TF-IDF表示文本。 TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆...corpus=[“I come to...
  • BQ_Corpus.pdf

    2019-09-30 09:15:45
    哈工大文本相似性数据库BQ_Corpus 参考文献.2018,中文数据库
  • 情感分析︱网络公开的免费文本语料训练数据集汇总 中文情感分析用词语集 人民日报切分/标注语料库 哈工大信息检索研究中心(HIT CIR)语言技术平台共享资源 中文句结构树资料库 中文对白语料 chinese conversation ...
  • 自动主题明智的Corpus创建 通过使用数据挖掘(BeautifulSoup)从给定的关键字或主题创建数据集或语料库的Python脚本,可使用该关键字从Google搜索的首页链接中获取内容。 创建一个脏的,半结构化的语料库。 尚不能...
  • Training with 30G+ Raw Chinese Corpus, xxlarge, small version and more, Target to match State of the Art performance in Chinese with 30% less parameters, 2019-Oct-7, During the National Day of China!...
  • I have written the following code:import nltkthenfile1 = nltk.corpus.gutenberg.words('shakespeare-caesar.txt')file2 = nltk.corpus.gutenberg.words('shakespeare-hamlet.txt')file3 = nltk.corpus.gutenberg...
  • handle_corpus.py

    2020-07-23 20:31:07
    txt格式的文本摘要语料:CNN/daily mail。抽取其中的摘要和短文,当一个短文对应多个摘要时,选择第一个摘要。只是脚本:并没有语料
  • 该数据集包含来自2004年或之前编写的博客的文本,每个博客都是单个用户的作品。 Blog Authorship Corpus_datasets.txt blogtext.csv
  • 文本切分

    2021-01-20 12:08:47
    您好!我是“筋斗云上”,请多关照! 第一篇 文本切分 文本切分包含 两个步骤:句子切分、词语切分 一、句子切分 句子切分是将文本语料库分解成句子的过程,句子 切分基本技术...from nltk.corpus import gutenberg al
  • 每个演讲者都有不同的 报纸文本的选择基于贪婪算法,该算法增加了 上下文和语音覆盖。 彩虹的段落和启发段落对于所有人都是相同的 彩虹段落可以在国际方言中找到 英文档案馆: (http://web.ku.edu/~idea/...
  • 文本分类

    2020-08-31 11:27:08
    朴素贝叶斯分类器 ...sogou_corpus_path = ensure_data('搜狗文本分类语料库迷你版','http://file.hankcs.com/corpus/sogou-text-classification-corpus-mini.zip') NaiveBayesClassifier = SafeJCla
  • 在data_utils.py中是通过some_texts来将corpus转换成预训练的格式. 我看逻辑是将文档分为句子,然后组成list.文档之间没有区分的标识. 但是bert 预训练中,文章和文章,是有空行. 然后mask 和 predict 是在单个文档之间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 548
精华内容 219
关键字:

文本corpus