我发现这两篇文章结合了协同过滤(矩阵分解)和主题建模(LDA),根据用户感兴趣的帖子/文章的主题条款向用户推荐类似的文章/帖子.
论文(PDF格式)为:" 推荐科学论文的协作主题建模 "和" 推荐GitHub存储库的协作主题建模 "
新算法称为协作主题回归.我希望找到一些实现此功能的python代码,但无济于事.这可能是一个很长的镜头,但有人可以显示一个简单的python示例吗?
python machine-learning collaborative-filtering lda topic-modeling
我想把这个日期定在昨天晚上11点30分.
这是我的代码:
import datetime
yesterday = datetime.date.today () - datetime.timedelta (days=1)
PERIOD=yesterday.strftime ('%Y-%m-%d')
new_period=PERIOD.replace(hour=23, minute=30)
print new_period
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:
TypeError: replace() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我可以从gensim运行LDA代码,并使用各自的关键字获得前10个主题.
现在,我想进一步了解LDA算法的准确性,看看他们将哪些文档聚集到每个主题中.这对于gensim LDA有可能吗?
基本上我想做这样的事情,但在python和使用gensim.
我想绘制一个二维图形,其中x轴为术语,y轴为TFIDF得分(或文档ID),用于我的句子列表.我使用scikit learn's fit_transform()来获取scipy矩阵,但我不知道如何使用该矩阵绘制图形.我试图得到一个情节,看看我的句子可以用kmeans进行分类.
这是输出fit_transform(sentence_list):
(文件ID,术语编号)tfidf得分
(0, 1023) 0.209291711271
(0, 924) 0.174405532933
(0, 914) 0.174405532933
(0, 821) 0.15579574484
(0, 770) 0.174405532933
(0, 763) 0.159719994016
(0, 689) 0.135518787598
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
sentence_list=["Hi how are you", "Good morning" ...]
vectorizer=TfidfVectorizer(min_df=1, stop_words='english', decode_error='ignore')
vectorized=vectorizer.fit_transform(sentence_list)
num_samples, num_features=vectorized.shape
print "num_samples: %d, num_features: %d" %(num_samples,num_features)
num_clusters=10
km=KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(vectorized)
PRINT km.labels_ # Returns a list of clusters ranging 0 to 10
Run Code Online (Sandbox Code Playgroud)
谢谢,
我要去看这篇论文http://cs.stanford.edu/~quocle/paragraph_vector.pdf
它说明了这一点
"对图矢量和单词矢量进行平均或连接以预测上下文中的下一个单词.在实验中,我们使用连接作为组合矢量的方法."
连接或平均如何工作?
示例(如果第1段包含word1和word2):
word1 vector =[0.1,0.2,0.3]
word2 vector =[0.4,0.5,0.6]
concat method
does paragraph vector = [0.1+0.4,0.2+0.5,0.3+0.6] ?
Average method
does paragraph vector = [(0.1+0.4)/2,(0.2+0.5)/2,(0.3+0.6)/2] ?
Run Code Online (Sandbox Code Playgroud)
也是从这张图片:
据说:
段落标记可以被认为是另一个单词.它充当记忆,记住当前上下文中缺少的内容 - 或段落的主题.出于这个原因,我们经常将此模型称为段落向量的分布式存储模型(PV-DM).
段落标记是否等于段落向量等于on?
我正在尝试做一个kmeans输出的散点图,它将同一主题的句子聚合在一起.我面临的问题是将属于每个群集的点绘制成某种颜色.
sentence_list=["Hi how are you", "Good morning" ...] #i have 10 setences
km = KMeans(n_clusters=5, init='k-means++',n_init=10, verbose=1)
#with 5 cluster, i want 5 different colors
km.fit(vectorized)
km.labels_ # [0,1,2,3,3,4,4,5,2,5]
pipeline = Pipeline([('tfidf', TfidfVectorizer())])
X = pipeline.fit_transform(sentence_list).todense()
pca = PCA(n_components=2).fit(X)
data2D = pca.transform(X)
plt.scatter(data2D[:,0], data2D[:,1])
km.fit(X)
centers2D = pca.transform(km.cluster_centers_)
plt.hold(True)
labels=np.array([km.labels_])
print labels
Run Code Online (Sandbox Code Playgroud)
我的问题在于plt.scatter()的底部代码; 我应该用什么参数c?
c=labels在代码中使用时,我收到此错误: number in rbg sequence outside 0-1 range
2.当我设置时c= km.labels_,我得到错误:
ValueError: Color array must be two-dimensional
plt.scatter(centers2D[:,0], centers2D[:,1], …Run Code Online (Sandbox Code Playgroud) 我有一份文件清单和整个语料库中每个独特单词的tf-idf分数.我如何在二维图上形象化,以便计算出运行k-means需要多少个簇?
这是我的代码:
sentence_list=["Hi how are you", "Good morning" ...]
vectorizer=TfidfVectorizer(min_df=1, stop_words='english', decode_error='ignore')
vectorized=vectorizer.fit_transform(sentence_list)
num_samples, num_features=vectorized.shape
print "num_samples: %d, num_features: %d" %(num_samples,num_features)
num_clusters=10
Run Code Online (Sandbox Code Playgroud)
如您所见,我能够将我的句子转换为tf-idf文档矩阵.但我不确定如何绘制tf-idf分数的数据点.
我刚在想:
谢谢
我试图绘制按年份分组的数据,并且每年,我想计算用户数量。下面,我只是将日期列从浮点数转换为整数。
如果你看到 x 轴,我的年份代码似乎变成了一个浮点数,并且每个代码间隔 0.5 个刻度。
我如何使这纯粹是一个整数?
将年份列转换为字符串格式后,刻度仍然相隔 2 个空格
df['year'] = df['year'].astype(str)
Run Code Online (Sandbox Code Playgroud)
我们如何在图上打印线的方程?
我有2个自变量,想要这样的等式:
y=mx1+bx2+c
where x1=cost, x2 =targeting
Run Code Online (Sandbox Code Playgroud)
我可以绘制最佳拟合线,但如何在图上打印方程?
也许我不能在一个等式中打印出2个自变量,但y=mx1+c至少我怎么做呢
?
这是我的代码:
fit=lm(Signups ~ cost + targeting)
plot(cost, Signups, xlab="cost", ylab="Signups", main="Signups")
abline(lm(Signups ~ cost))
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行我的python文件,该文件首先读取中文字符串并打印出来.
这是我的Dockerfile
FROM python:2.7-onbuild
ENV LANG en_US.UTF-8
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Run Code Online (Sandbox Code Playgroud)
这是我的python文件:
# -*- coding: utf-8 -*-
import jieba
s = "?????????"
s = s.decode('utf-8')
print type(s), s
Run Code Online (Sandbox Code Playgroud)
然后我跑:
docker build -t python-example .
docker run python-example
我得到的错误: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
当我在本地运行它,它工作正常.