我正在使用NLTK来对文档进行分类 - 每个文档有1个标签,有10种类型的文档.
对于文本提取,我正在清理文本(标点删除,html标记删除,小写),删除nltk.corpus.stopwords,以及我自己的停用词集合.
对于我的文档功能,我查看所有50k文档,并按频率(frequency_words)收集前2k个单词,然后为每个文档识别文档中哪些单词也在全局frequency_words中.
然后我将每个文档作为hashmap传递{word: boolean}到nltk.NaiveBayesClassifier(...)中,我对文档总数的测试训练比率为20:80.
我遇到的问题:
谢谢!
受到这个答案的启发,我试图在经过训练的训练有素的tf-idf矢量化器和新文档之间找到余弦相似性,并返回类似的文档.
下面的代码找到第一个向量的余弦相似度,而不是新的查询
>>> from sklearn.metrics.pairwise import linear_kernel
>>> cosine_similarities = linear_kernel(tfidf[0:1], tfidf).flatten()
>>> cosine_similarities
array([ 1. , 0.04405952, 0.11016969, ..., 0.04433602,
0.04457106, 0.03293218])
Run Code Online (Sandbox Code Playgroud)
由于我的火车数据很大,循环遍历整个训练过的矢量器听起来像个坏主意.如何推断新文档的向量,并找到相关文档,与下面的代码相同?
>>> related_docs_indices = cosine_similarities.argsort()[:-5:-1]
>>> related_docs_indices
array([ 0, 958, 10576, 3277])
>>> cosine_similarities[related_docs_indices]
array([ 1. , 0.54967926, 0.32902194, 0.2825788 ])
Run Code Online (Sandbox Code Playgroud) python machine-learning tf-idf document-classification scikit-learn
什么是使用单词本身作为任何机器学习算法中的功能的最佳方法?
我必须从特定段落中提取单词相关功能的问题.我应该使用字典中的索引作为数字特征吗?如果是这样,我将如何规范这些?
一般来说,单词本身如何在NLP中用作特征?
有人可以提供关于在何处查找包含频率信息的字典单词列表的建议吗?
理想情况下,来源将是北美品种的英语单词.
有谁知道好的开源文本分类模型?我知道斯坦福分类器,Weka,Mallet等,但所有这些都需要培训.
我需要将新闻文章分类为体育/政治/健康/游戏/等.那里有训练有素的模特吗?
Alchemy,OpenCalais等不是选项.我需要开源工具(最好是Java).
java classification machine-learning categorization document-classification
我有X作为csr_matrix,我使用scikit的tfidf矢量化器获得,y是一个数组
我的计划是使用LDA创建功能,但是,我没有找到如何使用X作为csr_matrix初始化gensim的语料库变量.换句话说,我不想下载gensim文档中显示的语料库,也不想将X转换为密集矩阵,因为它会消耗大量内存并且计算机可能会挂起.
简而言之,我的问题如下,
我的下面的代码工作正常,除非我使用创建一个超过3000个术语的DocumentTermMatrix.这一行:
movie_dict <- findFreqTerms(movie_dtm_train, 8)
movie_dtm_hiFq_train <- DocumentTermMatrix(movie_corpus_train, list(dictionary = movie_dict))
Run Code Online (Sandbox Code Playgroud)
失败:
Error in simple_triplet_matrix(i = i, j = j, v = as.numeric(v), nrow = length(allTerms), :
'i, j, v' different lengths
In addition: Warning messages:
1: In mclapply(unname(content(x)), termFreq, control) :
all scheduled cores encountered errors in user code
2: In simple_triplet_matrix(i = i, j = j, v = as.numeric(v), nrow = length(allTerms), :
NAs introduced by coercion
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?对于DocumentTermMatrix,3000*60000矩阵是否太大了?这对于文档分类来说似乎相当小..
完整代码段:
n1 <- 60000
n2 <- 70000
#******* loading the …Run Code Online (Sandbox Code Playgroud) 我正在使用rpart包进行决策树分类.我有一个包含大约4000个功能(列)的数据框.我想rpart()为我的模型使用所有功能.我怎样才能做到这一点?基本上,rpart()会要求我以这种方式使用该功能:
dt <- rpart(class ~ feature1 + feature2 + ....)
Run Code Online (Sandbox Code Playgroud)
我的功能是文档中的单词,所以我有超过4k的功能.每个功能都由一个单词表示.是否有可能在不编写所有功能的情况下使用它们?
目标:在 AWS SageMaker Jupyter Labs 上运行此自动标签笔记本。
内核尝试过:conda_pytorch_p36, conda_python3, conda_amazonei_mxnet_p27。
! pip install farm-haystack -q
# Install the latest master of Haystack
!pip install grpcio-tools==1.34.1 -q
!pip install git+https://github.com/deepset-ai/haystack.git -q
!wget --no-check-certificate https://dl.xpdfreader.com/xpdf-tools-linux-4.03.tar.gz
!tar -xvf xpdf-tools-linux-4.03.tar.gz && sudo cp xpdf-tools-linux-4.03/bin64/pdftotext /usr/local/bin
!pip install git+https://github.com/deepset-ai/haystack.git -q
Run Code Online (Sandbox Code Playgroud)
! pip install farm-haystack -q
# Install the latest master of Haystack
!pip install grpcio-tools==1.34.1 -q
!pip install git+https://github.com/deepset-ai/haystack.git -q
!wget --no-check-certificate https://dl.xpdfreader.com/xpdf-tools-linux-4.03.tar.gz
!tar -xvf xpdf-tools-linux-4.03.tar.gz && sudo cp xpdf-tools-linux-4.03/bin64/pdftotext /usr/local/bin …Run Code Online (Sandbox Code Playgroud)