标签: text-processing

tf-idf:我理解对吗?

我对进行一些文档聚类感兴趣,现在我正在考虑使用 TF-IDF 来实现此目的。

如果我没记错的话,TF-IDF 特别用于评估给定查询的文档的相关性。如果我没有特定的查询,如何将 tf-idf 应用于聚类?

language-agnostic algorithm text-processing information-retrieval tf-idf

5
推荐指数
1
解决办法
3571
查看次数

适用于非常小的簇的聚类算法

我正在尝试在大约 5000 条记录的列表中查找重复项。每条记录都是一个人的姓名和地址,但在一个字段中输入的内容不一致,因此我正在尝试一种模糊匹配方法。我的方法(使用rapidminer)是对文本进行一些预处理(即标记化,删除常见和不相关的单词,例如“先生”等),生成TF-IDF并使用DBSCAN对匹配记录进行聚类。这是有效的,并且给出了相当好的结果,但是当我尝试运行完整的数据集时需要很长时间。它还会导致很多簇只有一个元素,我不知道这如何影响 DBSCAN 的计算时间。

是否有一种聚类算法可以更快地处理此类数据,或者是否有更好的方法来解决这个问题?

text-processing cluster-analysis data-mining rapidminer dbscan

5
推荐指数
1
解决办法
2196
查看次数

如何使用 python 解析电子邮件标头?

这是一个电子邮件标题示例,

header = """
From: Media Temple user (mt.kb.user@gmail.com)
Subject: article: A sample header
Date: January 25, 2011 3:30:58 PM PDT
To: user@example.com
Return-Path: <mt.kb.user@gmail.com>
Envelope-To: user@example.com
Delivery-Date: Tue, 25 Jan 2011 15:31:01 -0700
Received: from :po-out-1718.google.com ([72.14.252.155]:54907) by cl35.gs01.gridserver.com with esmtp (Exim 4.63) (envelope-from <mt.kb.user@gmail.com>) id 1KDoNH-0000f0-RL for user@example.com; Tue, 25 Jan 2011 15:31:01 -0700
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=+JqkmVt+sHDFIGX5jKp3oP18LQf10VQjAmZAKl1lspY=; b=F87jySDZnMayyitVxLdHcQNL073DytKRyrRh84GNsI24IRNakn0oOfrC2luliNvdea LGTk3adIrzt+N96GyMseWz8T9xE6O/sAI16db48q4Iqkd7uOiDvFsvS3CUQlNhybNw8m CH/o8eELTN0zbSbn5Trp0dkRYXhMX8FTAwrH0=
Domainkey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=wkbBj0M8NCUlboI6idKooejg0sL2ms7fDPe1tHUkR9Ht0qr5lAJX4q9PMVJeyjWalH 36n4qGLtC2euBJY070bVra8IBB9FeDEW9C35BC1vuPT5XyucCm0hulbE86+uiUTXCkaB 6ykquzQGCer7xPAcMJqVfXDkHo3H61HM9oCQM=
Message-Id: <c8f49cec0807011530k11196ad4p7cb4b9420f2ae752@mail.gmail.com>
Mime-Version: …
Run Code Online (Sandbox Code Playgroud)

python text-processing dictionary email-headers

5
推荐指数
1
解决办法
3912
查看次数

指示性摘要和信息性摘要有什么区别?

我很难区分指示性摘要和信息性摘要。你能给我一个清楚的例子来说明它们之间的区别吗?

提前致谢!

text-processing nlp text-mining summarization

5
推荐指数
1
解决办法
2962
查看次数

如何删除一个文件中存在于另一个文件中的行?

我每天都会收到一个文件,其中有 10,000 条记录,其中 99% 都在最后一天的文件中。如何使用 macOS 命令行删除新文件中前一天文件中存在的行?

remove_duplicates newfile oldfile
Run Code Online (Sandbox Code Playgroud)

这些文件看起来像这样:

"First Last"\t"email"\t"phone"\t"9 more columns..."
Run Code Online (Sandbox Code Playgroud)

注意,我尝试了这个awk解决方案,但它没有输出任何内容,即使我确认了重复的行。

macos bash text-processing

5
推荐指数
1
解决办法
2802
查看次数

如何让“grep -zoP”分别显示每个匹配项?

我在这个表格上有一个文件:

X/this is the first match/blabla
X-this is
the second match-

and here we have some fluff.
Run Code Online (Sandbox Code Playgroud)

我想提取出现在“X”之后和相同标记之间的所有内容。所以如果我有“X+match+”,我想得到“match”,因为它出现在“X”之后和标记“+”之间。

因此,对于给定的示例文件,我希望得到以下输出:

this is the first match
Run Code Online (Sandbox Code Playgroud)

进而

this is
the second match
Run Code Online (Sandbox Code Playgroud)

我设法使用以下方法获取 X 和标记之间的所有内容:

grep -zPo '(?<=X(.))(.|\n)+(?=\1)' file
Run Code Online (Sandbox Code Playgroud)

那是:

  • grep -Po '(?<=X(.))(.|\n)+(?=\1)'匹配 X 后跟(something)被捕获并在最后匹配(?=\1)(我基于我的答案在这里的代码)。
  • 注意我(.|\n)用来匹配任何东西,包括一个新行,我也在-zgrep 中使用它来匹配新行。

所以这很有效,唯一的问题来自输出的显示:

$ grep -zPo '(?<=X(.))(.|\n)+(?=\1)' file
this is the first matchthis is
the second match
Run Code Online (Sandbox Code Playgroud)

如您所见,所有匹配项一起出现,“这是第一个匹配项”后跟“这是第二个匹配项”,完全没有分隔符。我知道这来自“-z”的使用,它将所有文件视为一组行,每行都以零字节(ASCII NUL 字符)而不是换行符(引用“man grep”)结尾

那么:有没有办法分别获得所有这些结果? …

regex awk grep text-processing

5
推荐指数
2
解决办法
132
查看次数

文本分类算法


我有数百万个短(最多30个字)的文件,我需要将它们分成几个已知的类别.文档可以匹配几个类别(很少,但可能).文档也可能与任何类别(也很少)不匹配.我还有数百万份已经分类过的文件.我应该使用什么算法来完成这项工作.我不需要快速完成.我需要确保算法正确分类(尽可能).
我应该使用什么算法?C#中是否有in实现?
谢谢您的帮助!

c# text-processing artificial-intelligence machine-learning

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

如何从html中删除所有属性?

我有原始的html,里面有一些css类用于各种标签.

例:

输入:

<p class="opener" itemprop="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque molestias natus iste labore a accusamus dolorum vel.</p>
Run Code Online (Sandbox Code Playgroud)

我想得到简单的HTML:

输出:

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque molestias natus iste labore a accusamus dolorum vel.</p>
Run Code Online (Sandbox Code Playgroud)

我不知道这些类的名字.我需要在JavaScript(node.js)中执行此操作.

任何的想法?

html javascript text-processing text-parsing node.js

4
推荐指数
2
解决办法
4233
查看次数

为什么"\ r \n".split("\ r \n")返回一个空数组?

我有一个正则表达式"[\ r \n\f] +"来查找字符串中包含的行数.我的代码是这样的:

pattern = Pattern.compile("[\\r\\n\\f]+")
String[] lines = pattern.split(texts);
Run Code Online (Sandbox Code Playgroud)

在我的单元测试中,我有这样的示例字符串:

"\t\t\t    \r\n      \n"
"\r\n"
Run Code Online (Sandbox Code Playgroud)

解析第一个字符串的结果是2,但是当它解析第二个字符串时它变为0.

我认为第二个字符串包含1行,尽管该行是"空白"(假设我正在编辑一个以文本编辑器中的"\ r \n"开头的文件,插入符号是否应放在第二行?).我的正则表达式是不正确的解析行?或者我在这里遗失了什么?

编辑:

我想我会让问题更加明显:

为什么

// notice the trailing space in the string
"\r\n ".split("\r\n").length == 2 // results in 2 strings {"", " "}. So this block of text has two lines.
Run Code Online (Sandbox Code Playgroud)

// notice there's no trailing space in the string 
"\r\n".split("\r\n").length == 0 // results in an empty array. Why "" (empty string) is not in the result and …
Run Code Online (Sandbox Code Playgroud)

java regex string text-processing newline

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

在R中通过三卦产生所有单词unigrams

我试图通过R中的三元组生成所有unigrams的列表,最终制作一个包含所有单个单词,bigrams和trigrams的列的文档短语矩阵.

我希望找到一个简单的包装,但没有成功.我最终得到了RWeka,下面的代码和输出,但不幸的是,这种方法会丢弃所有2或1个字符的unigrams.

这可以修复,还是人们知道另一条路?谢谢!

TrigramTokenizer <- function(x) NGramTokenizer(x, 
                                               Weka_control(min = 1, max = 3))
Text = c( "Ab Hello world","Hello ab",  "ab" )
tt = Corpus(VectorSource(Text))
tdm <- TermDocumentMatrix( tt, 
                           control = list(tokenize = TrigramTokenizer))
inspect(tdm)
# <<TermDocumentMatrix (terms: 6, documents: 3)>>
# Non-/sparse entries: 7/11
# Sparsity           : 61%
# Maximal term length: 14
# Weighting          : term frequency (tf)

#                 Docs
# Terms            1 2 3
#   ab hello       1 0 0
#   ab hello world 1 0 0 …
Run Code Online (Sandbox Code Playgroud)

text-processing r tm rweka quanteda

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