语料的流式加载

os.listdir('data/')# 输入文件夹名字,输出文件夹下的文件夹名或者文档名list

## 流式加载(Corpus Streaming) class MySentences(object): def __init__(self, dirname): self.dirname = dirname def __iter__(self): for fname in os.listdir(self.dirname): print('正在处理文件{}'.format(fname)) for line in smart_open(os.path.join(self.dirname, fname), 'r',encoding='utf-8'): line = line.lower() #对每一行文本中的英文词汇小写化 line = wordnet_lemmatizer.lemmatize(porter_stemmer.stem(line)) # line = line.replace('social listening','social_listening')#'social_listening'是文本中一个重要的词汇,为了防止因分词问题导致的语义丢失,笔者将其替换成带下划线的单个词汇 # jieba.add_word('social_listening')#对特定长词进行控制,防止被分错词,影响后续的分析效果 # jieba.add_word('社会化聆听')#对social_listening进行控制,防止被分错词,影响后续的分析效果 yield [i.strip() for i in jieba.lcut(line) if i not in stoplist andlen(i) > 1]#在载入文本的同时,对其中的语句进行分词处理,且去掉停用词和长度小于1的语句

os.listdir('data/') # os.listdir('filefolder')输入文件夹的路径,返回该文件夹下的文件夹名或者文档名list os.path.join('data/', 'android智能手机编程_国家开放大学_王立.txt') # os.path.join(self.dirname,fname)拼接文件夹的路径和文件名 # os.path.join("filefolder_road","filename") for line in smart_open(os.path.join('data/', 'android智能手机编程_国家开放大学_王立.txt'), encoding='utf8'): print(line)

【语料的流式加载】语料的流式加载
文章图片

    推荐阅读