将由文章组成的语料库标记成句子Python

2024-04-20 10:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python分析我的第一个深度学习模型,为了这样做,我必须首先将我的语料库(8807篇文章)分成句子。我的语料库构建如下:

## Libraries to download
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
from gensim import corpora, models
import gensim

import json
import nltk
import re
import pandas


appended_data = []


#for i in range(20014,2016):
#    df0 = pandas.DataFrame([json.loads(l) for l in open('SDM_%d.json' % i)])
#    appended_data.append(df0)

for i in range(2005,2016):
    if i > 2013:
        df0 = pandas.DataFrame([json.loads(l) for l in open('SDM_%d.json' % i)])
        appended_data.append(df0)
    df1 = pandas.DataFrame([json.loads(l) for l in open('Scot_%d.json' % i)])
    df2 = pandas.DataFrame([json.loads(l) for l in open('APJ_%d.json' % i)])
    df3 = pandas.DataFrame([json.loads(l) for l in open('TH500_%d.json' % i)])
    df4 = pandas.DataFrame([json.loads(l) for l in open('DRSM_%d.json' % i)])
    appended_data.append(df1)
    appended_data.append(df2)
    appended_data.append(df3)
    appended_data.append(df4)


appended_data = pandas.concat(appended_data)
# doc_set = df1.body

doc_set = appended_data.body

我试图使用库gensim.models中的函数Word2Vec.load_word2vec_format,但我必须首先将我的语料库(doc_set)拆分成句子。在

^{pr2}$

有什么建议吗?在

干杯


Tags: infromimportjsondataframepandasfordata
1条回答
网友
1楼 · 发布于 2024-04-20 10:46:17

因此,Gensim的Word2Vec需要以下格式作为它的训练输入:sentences = [['first', 'sentence'], ['second', 'sentence']]。在

我想你的文件不止一句话。首先应该按句子进行拆分,可以使用nltk进行拆分(可能需要先下载模型)。然后将每个句子标记化,把所有的东西放在一个列表中。在

sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
sentenized = doc_set.body.apply(sent_detector.tokenize)
sentences = itertools.chain.from_iterable(sentenized.tolist()) # just to flatten

result = []
for sent in sentences:
    result += [nltk.word_tokenize(sent)]
gensim.models.Word2Vec(result)

不幸的是,我和熊猫相处的不够好,无法以“放荡”的方式完成所有的手术。在

多注意Word2Vec的参数,正确选择它们会产生巨大的差异。在

相关问题 更多 >