我正在为Mallet寻找一些好的文档,特别是它与主题建模相关的类.我查看了Java文档,但它们没有太大帮助.例如:
estimate
public void estimate()
throws java.io.IOException
Throws:
java.io.IOException
Run Code Online (Sandbox Code Playgroud)
仍然不知道这种方法的作用(如果你这样做,请告诉我).此外,如果您有使用mallet的经验并且可以帮助我打印主题模型(或代表主题的单词组)所学的主题,请告诉我.欢迎所有建议!
我已经看过方法getTopWords,但我还没能把它称为...也许是一个mising jar?
我打算在Twitter上编写一个主题检测工具.我一直在考虑两个推文之间的良好相似性度量(距离),以及如何表示它们,计入:
#hashtags(我认为在Twitter上检测到的话题时,井号标签是非常重要的)我正在考虑实施到目前为止所做的工作并做一些实验.我将实现经典模型(类似TF*IDF并使用欧几里德距离,角度余弦等),以及具有一些相似性度量(汉明,Jaccard等)的布尔模型.
有关如何使某些现有模型适应Twitter或关于如何创建新模型的一些想法的任何想法?
twitter information-retrieval cluster-analysis machine-learning topic-modeling
我想按主题对大量(100K到1M +)的小型互联网文章(推文,博客文章,新闻等)进行分类.为了实现这一目标,我一直在寻找标记的培训数据文档,我可以用它来构建分类器模型.为了使这篇文章最有用,以下是我发现的一些可能的来源:
a)www.freebase.com/internet/website/category?instances=
b)wikipedia-miner.cms.waikato.ac.nz(用于访问维基百科数据的工具包)
c)en.wikipedia.org/wiki/Wikipedia:Database_download
d)wiki.dbpedia.org/About(属于类别的SKOS格式主题关键字)
e)互联网搜索大型文章集,然后进行聚类和手动策划
问题1:是否有其他可提供标签培训文件的互联网资源?给定主题上的关键字集,尤其是加权集也很有用
理想情况下,我想构建一个分类器,该分类器将返回分层类别,并且随着更多兴趣/数据变得可用,可以在以后添加子主题细节.
问题2:是否存在分层结构(也可能是可扩展的)主题建模/分类框架?一个代码示例将特别受欢迎
非常感谢
路透社语料库第1卷(在RCV1-v2上搜索)它是从1990年代后期开始的大约80万路透社文章被人类分类为主题,行业和地区类别
一个学术联盟(LDC)分发各种语料库,包括由纽约时报编制的约1.5M标签文件:http: //catalog.ldc.upenn.edu/LDC2008T19
hierarchical-clustering nltk training-data topic-modeling scikit-learn
我正在尝试使用主题模型对twitter流数据进行建模.Gensim是一款易于使用的解决方案,其简洁性令人印象深刻.它有一个真正的LSI在线实现,但不适用于LDA.对于像twitter这样不断变化的内容流,动态主题模型是理想的选择.有没有办法,甚至是黑客 - 一种实施甚至是一种策略,我可以利用这种方式将Gensim用于此目的?
是否有任何其他python实现派生(最好)来自Gensim或独立?我更喜欢python,因为我想尽快开始,但如果有一些最佳解决方案,请提及它.
谢谢.
Latent Dirichlet Allocation(LDA)是一个主题模型,用于查找一堆文档的潜在变量(主题).我正在使用python gensim包,有两个问题:
--- 1,我打印出每个主题最常用的单词(我试过10,20,50个主题),发现单词的分布非常"平淡":意思是即使是最常用的单词也只有1%可能性...
--- 2,大多数主题都是相似的:意味着每个主题的最常用单词重叠很多,主题分享几乎相同的高频词组...
我想问题可能是由于我的文档:我的文档实际上属于特定类别,例如,它们都是介绍不同在线游戏的文档.对于我的情况,LDA是否仍然有效,因为文件本身非常相似,所以基于"词袋"的模型可能不是一个好的尝试方法?
有人能给我一些建议吗?谢谢!
我试图在Gensim中获得LDA模型的最佳主题数.我发现的一种方法是计算每个模型的对数似然,并将每个模型相互比较,例如,使用潜在Dirichlet分配的输入参数
因此,我研究了使用Gensim计算LDA模型的对数似然性,并得出以下文章:您如何估计潜在Dirichlet分配模型的α参数?
这基本上说明update_alpha()方法实现了黄,乔纳森所描述的方法.Dirichlet分布参数的最大似然估计.我仍然不知道如何在不更改代码的情况下使用libary获取此参数.
如何使用Gensim从LDA模型获取对数似然?
有没有更好的方法来获得Gensim的最佳主题数量?
from nltk.tokenize import RegexpTokenizer
from stop_words import get_stop_words
from gensim import corpora, models
import gensim
import os
from os import path
from time import sleep
import matplotlib.pyplot as plt
import random
from wordcloud import WordCloud, STOPWORDS
tokenizer = RegexpTokenizer(r'\w+')
en_stop = set(get_stop_words('en'))
with open(os.path.join('c:\users\kaila\jobdescription.txt')) as f:
Reader = f.read()
Reader = Reader.replace("will", " ")
Reader = Reader.replace("please", " ")
texts = unicode(Reader, errors='replace')
tdm = []
raw = texts.lower()
tokens = tokenizer.tokenize(raw)
stopped_tokens = [i for i in tokens if …Run Code Online (Sandbox Code Playgroud) 我正在尝试对客户反馈进行分类,并且我在python中运行了LDA并获得了10个主题的以下输出:
(0, u'0.559*"delivery" + 0.124*"area" + 0.018*"mile" + 0.016*"option" + 0.012*"partner" + 0.011*"traffic" + 0.011*"hub" + 0.011*"thanks" + 0.010*"city" + 0.009*"way"')
(1, u'0.397*"package" + 0.073*"address" + 0.055*"time" + 0.047*"customer" + 0.045*"apartment" + 0.037*"delivery" + 0.031*"number" + 0.026*"item" + 0.021*"support" + 0.018*"door"')
(2, u'0.190*"time" + 0.127*"order" + 0.113*"minute" + 0.075*"pickup" + 0.074*"restaurant" + 0.031*"food" + 0.027*"support" + 0.027*"delivery" + 0.026*"pick" + 0.018*"min"')
(3, u'0.072*"code" + 0.067*"gps" + 0.053*"map" + 0.050*"street" + 0.047*"building" + 0.043*"address" + 0.042*"navigation" + 0.039*"access" + 0.035*"point" + …Run Code Online (Sandbox Code Playgroud) 我尝试使用gensim生成300000条记录的主题。在尝试可视化主题时,出现验证错误。我可以在模型训练后打印主题,但是在使用pyLDAvis时失败
# Running and Training LDA model on the document term matrix.
ldamodel1 = Lda(doc_term_matrix1, num_topics=10, id2word = dictionary1, passes=50, workers = 4)
(ldamodel1.print_topics(num_topics=10, num_words = 10))
#pyLDAvis
d = gensim.corpora.Dictionary.load('dictionary1.dict')
c = gensim.corpora.MmCorpus('corpus.mm')
lda = gensim.models.LdaModel.load('topic.model')
#error on executing this line
data = pyLDAvis.gensim.prepare(lda, c, d)
Run Code Online (Sandbox Code Playgroud)
在pyLDAvis上面运行后,我尝试执行以下错误
---------------------------------------------------------------------------
ValidationError Traceback (most recent call last)
<ipython-input-53-33fd88b65056> in <module>()
----> 1 data = pyLDAvis.gensim.prepare(lda, c, d)
2 data
C:\ProgramData\Anaconda3\lib\site-packages\pyLDAvis\gensim.py in prepare(topic_model, corpus, dictionary, doc_topic_dist, **kwargs)
110 """
111 opts = fp.merge(_extract_data(topic_model, …Run Code Online (Sandbox Code Playgroud) 我的团队正在使用R中的Quanteda软件包对中等大小的文本(成千上万个单词)进行一些主题建模.我想在主题建模过程之前将单词缩减为单词词干,这样我就是不计算不同主题的同一个词的变化.
唯一的问题是词干算法留下了一些不是真正单词的词."幸福"源于"幸福","安排"源于"阿朗",等等.所以,在我想象主题建模的结果之前,我想恢复词干以完成单词.
通过阅读StackOverflow上的一些先前的线程,我从TM包中找到了一个函数stemCompletion(),它至少可以实现这一点.它似乎工作得相当好.
但是当我将它应用于文档文本矩阵中的术语向量时,stemCompletion()总是替换字符向量的名称,而不是字符本身.这是一个可重复的例子:
# Set up libraries
library(janeaustenr)
library(quanteda)
library(tm)
# Get first 200 words of Mansfield Park
words <- head(mansfieldpark, 200)
# Build a corpus from words
corpus <- quanteda::corpus(words)
# Eliminate some words from counting process
STOPWORDS <- c("the", "and", "a", "an")
# Create a document text matrix and do topic modeling
dtm <- corpus %>%
quanteda::dfm(remove_punct = TRUE,
remove = STOPWORDS) %>%
quanteda::dfm_wordstem(.) %>% # Word stemming takes place here
quanteda::convert("topicmodels")
# Word stems …Run Code Online (Sandbox Code Playgroud) topic-modeling ×10
python ×6
lda ×5
gensim ×3
nlp ×2
java ×1
labeling ×1
mallet ×1
nltk ×1
quanteda ×1
r ×1
scikit-learn ×1
text-mining ×1
tm ×1
twitter ×1
word-cloud ×1