标签: text-mining

在Lucene中索引和搜索Word级注释图层

我有一个数据集,在底层文本上有多层注释,例如部分标签,来自浅层解析器的块,名称实体以及来自各种 自然语言处理(NLP)工具的其他部分.对于像这样的句子The man went to the store,注释可能如下所示:


Word  POS  Chunk       NER
====  ===  =====  ========
The    DT     NP    Person     
man    NN     NP    Person
went  VBD     VP         -
to     TO     PP         - 
the    DT     NP  Location
store  NN     NP  Location

我想使用Lucene索引一堆带有这些注释的文档,然后在不同的层上执行搜索.简单查询的一个示例是检索华盛顿被标记为人的所有文档.虽然我并不是完全致力于表示法,但语法上的最终用户可能会按如下方式输入查询:

查询:Word=Washington,NER=Person

我还想做更复杂的查询,涉及跨不同层的注释连续顺序,例如,找到所有文档,其中有一个单词标记的人,后面arrived at是单词标记位置的单词.这样的查询可能如下所示:

查询:"NER=Person Word=arrived Word=at NER=Location"

用Lucene来解决这个问题的好方法是什么?无论如何索引和搜索包含结构化令牌的文档字段?

有效载荷

一个建议是尝试使用Lucene 有效负载.但是,我认为有效载荷只能用于调整文档的排名,并且它们不用于选择返回的文档.

后者很重要,因为对于某些用例,包含模式 …

java lucene nlp data-mining text-mining

8
推荐指数
1
解决办法
1210
查看次数

如何从R访问维基百科?

是否有任何R包允许查询维基百科(最有可能使用Mediawiki API)获取与此类查询相关的可用文章列表,以及导入文本挖掘的选定文章?

wikipedia r text-mining wikipedia-api mediawiki-api

8
推荐指数
2
解决办法
4330
查看次数

Python和Java中的语音拼写

我正在尝试构建一个接受文本并输出本文单词的拼音拼写的系统.关于哪些库可以在Python和Java中使用的任何想法?

python java text-processing spelling text-mining

8
推荐指数
1
解决办法
4810
查看次数

从R中的许多html文件创建一个语料库

我想创建一个语料库来收集下载的HTML文件,然后在R中读取它们以供将来的文本挖掘.

从本质上讲,这就是我想要做的:

  • 从多个html文件创建语料库.

我尝试使用DirSource:

library(tm)
a<- DirSource("C:/test")
b<-Corpus(DirSource(a), readerControl=list(language="eng", reader=readPlain))
Run Code Online (Sandbox Code Playgroud)

但它返回"无效的目录参数"

  • 一次读入来自语料库的html文件.不知道怎么做.

  • 解析它们,将它们转换为纯文本,删除标签.很多人建议使用XML,但是,我找不到处理多个文件的方法.它们都是一个文件.

非常感谢.

html r corpus text-mining xml-parsing

8
推荐指数
2
解决办法
9466
查看次数

使用scikit-learn TfIdf和gensim LDA

我在scikit中使用了各种版本的TFIDF来学习一些文本数据的建模.

vectorizer = TfidfVectorizer(min_df=1,stop_words='english')
Run Code Online (Sandbox Code Playgroud)

生成的数据X采用以下格式:

<rowsxcolumns sparse matrix of type '<type 'numpy.float64'>'
    with xyz stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)

我想尝试使用LDA作为减少稀疏矩阵维数的方法.有没有一种简单的方法可以将NumPy稀疏矩阵X输入到gensim LDA模型中?

lda = models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=100)
Run Code Online (Sandbox Code Playgroud)

我可以忽略scikit并按照gensim教程概述的方式,但我喜欢scikit矢量化器及其所有参数的简单性.

python text-mining lda scikit-learn

8
推荐指数
1
解决办法
3294
查看次数

是否有任何最佳实践来准备基于文本的分类功能?

我们向客户提供了许多反馈和问题报告.它们是纯文本.我们正在尝试为这些文档构建自动分类器,以便将来的反馈/问题可以自动路由到正确的支持团队.除了文本本身,我认为我们应该将客户档案,案例提交区域等内容纳入分类器.我认为这可以为分类器提供更多线索,以便做出更好的预测.

目前,为培训选择的所有功能都基于文本内容.如何包含上述元功能?

(顺便说一下,我是新手.如果这个问题很简单,那么请原谅.)

添加1

我目前的方法是首先对原始文本(包括标题和正文)进行一些典型的预处理,例如删除停用词,POS标记和提取重要单词.然后我将标题和正文转换为单词列表,并以稀疏格式存储它们,如下所示:

实例1:word1:word1计数,word2:word2计数,....

实例2:wordX:word1计数,wordY:word2计数,....

对于其他非文本功能,我打算将它们添加为单词列之后的新列.所以最终的例子看起来像:

实例1:word1:word1计数,...,特征X:值,特征Y:值

nlp machine-learning text-mining

8
推荐指数
1
解决办法
682
查看次数

RTextTools中的Create_Analytics

我试图将Text文档分类为多个类别.我的下面的代码工作正常

matrix[[i]] <- create_matrix(trainingdata[[i]][,1], language="english",removeNumbers=FALSE,stemWords=FALSE,weighting=weightTf,minWordLength=3)                              
container[[i]] <- create_container(matrix[[i]],trainingdata[[i]][,2],trainSize=1:50,testSize=51:100) ,
models[[i]] <- train_models(container[[i]], algorithms=c("MAXENT","SVM"))
results[[i]] = classify_models(container[[i]],models[[i]])
Run Code Online (Sandbox Code Playgroud)

当我尝试下面的代码来获得精度,召回,准确度值:

analytic[[i]]  <- create_analytics(container[[i]], results[[i]])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in `row.names<-.data.frame`(`*tmp*`, value = c(NA_real_, NA_real_ : 
  duplicate 'row.names' are not allowed
Run Code Online (Sandbox Code Playgroud)

Categoriestext格式.如果我转换categoriesNumeric- 上面的代码工作正常.

是否有工作来保持text格式的类别,并获得精度,召回,准确值.

我的目标是获得多级分类器的精度,召回率,准确度值和混淆矩阵.是否有任何其他包来获取多类文本分类器的上述值(一个与所有)

precision r text-mining document-classification confusion-matrix

8
推荐指数
1
解决办法
1780
查看次数

OpenNLP培训的'cut-off'和'iteration'是什么意思?

是什么意思cut-off,并iteration在OpenNLP培训?或者就此而言,自然语言处理.我只需要一个外行解释这些术语.据我所知,迭代是算法重复的次数,并且截断是一个值,如果文本的值高于某个特定类别的截止值,它将被映射到该类别.我对吗?

text-mining opennlp

8
推荐指数
1
解决办法
1741
查看次数

清洁语料库时,tm包函数未删除引号和连字符

我正在尝试清理语料库,我使用了典型的步骤,如下面的代码:

docs<-Corpus(DirSource(path))
docs<-tm_map(docs,content_transformer(tolower))
docs<-tm_map(docs,content_transformer(removeNumbers))
docs<-tm_map(docs,content_transformer(removePunctuation))
docs<-tm_map(docs,removeWords,stopwords('en'))
docs<-tm_map(docs,stripWhitespace)
docs<-tm_map(docs,stemDocument)
dtm<-DocumentTermMatrix(docs)
Run Code Online (Sandbox Code Playgroud)

然而,当我检查矩阵时,几乎没有带引号的单词,例如:"我们""公司""代码指南" - 已知 - 加速

似乎单词本身在引号内,但当我尝试再次运行removePunctuation代码时,它不起作用.前面还有一些带子弹的话我也无法删除.

任何帮助将不胜感激.

r text-mining tm

8
推荐指数
1
解决办法
4305
查看次数

使用Gensim获取三元组的问题

我想从我提到的例句中得到bigrams和trigrams.

我的代码适用于bigrams.但是,它不捕获数据中的三元组(例如,人工计算机交互,我的句子的5个位置提到)

方法1下面提到的是我在Gensim中使用短语的代码.

from gensim.models import Phrases
documents = ["the mayor of new york was there", "human computer interaction and machine learning has now become a trending research area","human computer interaction is interesting","human computer interaction is a pretty interesting subject", "human computer interaction is a great and new subject", "machine learning can be useful sometimes","new york mayor was present", "I love machine learning because it is a new subject area", "human computer interaction helps people to get user friendly …
Run Code Online (Sandbox Code Playgroud)

python data-mining text-mining gensim word2vec

8
推荐指数
1
解决办法
3494
查看次数