小编cfo*_*ter的帖子

试图让Rf中的tf-idf加权工作

我正在尝试使用tm包进行一些非常基本的文本分析并得到一些tf-idf分数; 我正在运行OS X(虽然我在Debian Squeeze上试过这个但结果相同); 我有一个目录(这是我的工作目录),里面有几个文本文件(第一集包含尤利西斯的前三集,第二集包含第二集,如果你必须知道的话).

R版本:2.15.1 SessionInfo()报告这个关于tm:[1] tm_0.5-8.3

相关的代码:

library('tm')
corpus <- Corpus(DirSource('.'))
dtm <- DocumentTermMatrix(corpus,control=list(weight=weightTfIdf))

str(dtm)
List of 6
 $ i       : int [1:12456] 1 1 1 1 1 1 1 1 1 1 ...
 $ j       : int [1:12456] 2 10 12 17 20 24 29 30 32 34 ...
 $ v       : num [1:12456] 1 1 1 1 1 1 1 1 1 1 ...
 $ nrow    : int 2
 $ ncol    : int 10646 …
Run Code Online (Sandbox Code Playgroud)

r text-analysis tf-idf tm

14
推荐指数
1
解决办法
2万
查看次数

使用NLTK在Python中获取大量名词(或形容词); 或Python Mad Libs

就像这个问题一样,我有兴趣通过词性(一长串名词;形容词列表)获得大量单词,以便在其他地方以编程方式使用.这个答案有一个使用WordNet数据库(SQL)格式的解决方案.

有没有办法使用Python NLTK内置的语料库/工具获得此类列表.我可以拿一大堆文本,解析它然后存储名词和形容词.但是考虑到内置的词典和其他工具,是否有一种更简单的方法可以简单地提取已经存在于NLTK数据集中的单词,编码为名词/形容词(无论如何)?

谢谢.

python machine-learning nltk

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

尝试从DocumentTermMatrix中删除单词以使用topicmodel

所以,我正在尝试使用这个topicmodelsR(在6400个文档的语料库中有100个主题,每个约1000个单词).这个过程运行然后死掉,我想因为内存不足.

所以我尝试缩小lda()函数作为输入的文档术语矩阵的大小; 我想我可以minDocFreq在生成文档术语矩阵时使用该函数.但是当我使用它时,它似乎没有任何区别.这是一些代码:

以下是相关的代码:

> corpus <- Corpus(DirSource('./chunks/'),fileEncoding='utf-8')
> dtm <- DocumentTermMatrix(corpus)
> dim(dtm)
[1] 6423 4163
# So, I assume this next command will make my document term matrix smaller, i.e.
# fewer columns. I've chosen a larger number, 100, to illustrate the point.
> smaller <- DocumentTermMatrix(corpus, control=list(minDocFreq=100))
> dim(smaller)
[1]  6423 41613
Run Code Online (Sandbox Code Playgroud)

相同的维度和相同的列数(即相同数量的术语).

我觉得我做错了什么?谢谢.

r topic-modeling tm

4
推荐指数
1
解决办法
5328
查看次数

找不到R函数row_sums和col_sums的文档

我试图解决我自己关于更改包中的tf-idf加权函数的问题tm:https://stackoverflow.com/questions/15045313/changing-tf-idf-weight-function-weight-not-by-occurrences-的长期的,但是按numbe

在这样做时,我正在查看weightTfIdf包含以下代码的函数m,即TermDocumentMatrix.

cs <- col_sums(m)
Run Code Online (Sandbox Code Playgroud)

rs <- row_sums(m)
Run Code Online (Sandbox Code Playgroud)

但我找不到任何有关功能的文件row_sumscol_sums; 当我尝试使用它们编写自己的加权函数时,我收到一个错误:Error in weighting(x) : could not find function "col_sums"

这些功能在哪里定义?

我已粘贴R下面的完整功能信息:

function (m, normalize = TRUE) 
{
    isDTM <- inherits(m, "DocumentTermMatrix")
    if (isDTM) 
        m <- t(m)
    if (normalize) {
        cs <- col_sums(m)
        if (any(cs == 0)) 
            warning("empty document(s): ", paste(Docs(m)[cs == 
                0], collapse = " "))
        names(cs) <- seq_len(nDocs(m))
        m$v <- m$v/cs[m$j]
    }
    rs …
Run Code Online (Sandbox Code Playgroud)

r tm

3
推荐指数
1
解决办法
3005
查看次数

使用 XSLT 将 XML 转换为具有最大宽度的文本

我正在使用 XSLT(XSLT 2.0 很好)将 XML (TEI) 转换为可读的纯文本(有一些小的修改/挑战——为诗歌保留空间;使标题全部大写)。

到目前为止,一切都如我所愿,但为了可读性,我还想将通过此转换输出的一行文本的长度限制为某个值(例如 80 个字符宽),仅在空格处拆分(不要把单词分开,等等)。我想设置输出的最大长度(或者说,80 个字符),不仅仅是输出第一个,比如说,80 个字符。

有没有人对最佳方法有任何建议?模板是否匹配所有内容text()然后使用 XSLT 的内置字符串函数?我试图想象使用字符串函数(string-lengthsubstring或类似的)来做到这一点,但还没有任何运气。

(我可以很容易地使用 python 脚本单独执行此操作,所以也许“事后执行”可能是最好的答案。不过,我很想知道我是否忽略了一个简单的解决方案。)

xml xslt plaintext tei

2
推荐指数
1
解决办法
1236
查看次数

标签 统计

r ×3

tm ×3

machine-learning ×1

nltk ×1

plaintext ×1

python ×1

tei ×1

text-analysis ×1

tf-idf ×1

topic-modeling ×1

xml ×1

xslt ×1