新闻推荐系统项目思路总结

  • 简介:设计一个简单的新闻推荐项目,采用的是BBCnews

步骤

一、设置环境与参数

二、数据预处理,导入文件

  1. 去掉多余的punctuations
punct = re.compile('[%s]' % re.escape(string.punctuation))
text = punct.sub("",text)  
  1. 句子分词,一个list是一个句子,然后分词
  • 英文分词用:
    tokens = nltk.word_tokenize(text)
  • 中文分词用jieba
  1. 每个list都是一句话的词语集合了,去掉stopwords
  • 英文停用词:
    from nltk.corpus import stopwords
    stopwords.words('english')
  • 中文停用词:
    https://github.com/goto456/stopwords
  1. 数据集放入gensim.corpora的字典中,过滤掉词频过多或者过少的单词
dic = corpora.Dictionary(train_set)
dic.filter_extremes(no_below=no_below_this_number, no_above=no_above_fraction_of_doc)
  1. 将训练数据中的单词转换为词袋(bag of words)的方式
corpus = [dic.doc2bow(text) for text in train_set]

结果就是
[[(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (5, 2)],
[(0, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1)]]
标记为0的I,在第一句话只出现了一次, 所以为(0,1),而标记为5的you在第一句话出现了2次,所以为(5,2)

  1. 词袋转化为tfidf形式

三、训练主题模型

你可能感兴趣的:(新闻推荐系统项目思路总结)