标签: text-processing

用于句子相似性检测的BLEU分数实现

我需要计算BLEU分数,以确定两个句子是否相似.我读过一些文章,主要是关于测量机器翻译准确度的BLEU分数.但是我需要一个BLEU分数来找出句子之间的相似性.同一种语言[英语].(即)(两个句子都是英文).感谢期待.

java algorithm text-processing nlp machine-translation

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

perl-将字符串分成2个字符的组

可能重复:
如何在Perl中将字符串分成两个字符组成的块?

我想将一个字符串拆分成一个数组,并按2个字符组成部分:

  $input = "DEADBEEF";
  @output = split(/(..)/,$input);
Run Code Online (Sandbox Code Playgroud)

这种方法使其他所有元素都为空。

  $VAR1 = '';
  $VAR2 = 'DE';
  $VAR3 = '';
  $VAR4 = 'AD';
  $VAR5 = '';
  $VAR6 = 'BE';
  $VAR7 = '';
  $VAR8 = 'EF';
Run Code Online (Sandbox Code Playgroud)

如何获得一个连续的数组?

  $VAR1 = 'DE';
  $VAR2 = 'AD';
  $VAR3 = 'BE';
  $VAR4 = 'EF';
Run Code Online (Sandbox Code Playgroud)

(...除了获得第一个结果并删除其他所有行之外...)

regex perl text-processing split

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

如何水平翻转文字?

我需要编写一个从左到右翻转字符串的所有字符的函数.

例如:

译文:你好.

应该成为

.goȡyzⱥlëhtrểvoᶁềṕmujxofnworḇkçiuqėhT

我可以将问题限制在UTF-16(与UTF-8有相同的问题,只是不那么频繁).

天真的解决方案

一个天真的解决方案可能会尝试翻转所有的东西(例如,逐字逐句,其中一个字是16位 - 如果我们假设一个字节是16 位,我会说字节为字节.我也可以说字符-for-character其中characterChar表示单个代码点的数据类型):

String original = "??f???r??n?t";
String flipped = "";
foreach (Char c in s)
{
   flipped = c+fipped;
}
Run Code Online (Sandbox Code Playgroud)

导致错误翻转文本的结果:

  • ??f???r??n?t
  • ?t?n??r???f??

这是因为一个"字符"需要多个"代码点".

  • ??f???r??n?t
  • ? ? f ˜ ? ? r ? ? n i t ?

并翻转每个"代码点"给出:

  • ? t i n ? ? r ? ? ˜ f ? ?

这不仅不是有效的UTF-16编码,它的字符也不一样.

失败

当存在以下情况时,问题发生在UTF-16编码中:

这些相同的问题在UTF-8编码中发生,附加情况

  • 0..127 …

unicode text text-processing localization right-to-left

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

文本为scikit-learn中的分类算法提供输入格式

我开始使用scikit-learn做一些NLP.我已经使用了NLTK的一些分类器,现在我想尝试在scikit-learn中实现的分类器.

我的数据基本上是句子,我从这些句子的某些单词中提取特征来做一些分类任务.我的大多数功能都是名义上的:单词的词性(POS),左到右的单词,左到右的单词,右到右的单词,POS单词到单词. - 正确的,句法关系从一个词到另一个词的路径等.

当我使用NLTK分类器(决策树,朴素贝叶斯)进行一些实验时,特征集只是一个字典,其中包含特征的相应值:标称值.例如:[{"postag":"noun","wleft":"house","path":"VPNPNP",...},....].我只需将其传递给分类器,他们就完成了自己的工作.

这是使用的代码的一部分:

def train_classifier(self):
        if self.reader == None:
            raise ValueError("No reader was provided for accessing training instances.")

        # Get the argument candidates
        argcands = self.get_argcands(self.reader)

        # Extract the necessary features from the argument candidates
        training_argcands = []
        for argcand in argcands:
            if argcand["info"]["label"] == "NULL":
                training_argcands.append( (self.extract_features(argcand), "NULL") )
            else:
                training_argcands.append( (self.extract_features(argcand), "ARG") )

        # Train the appropriate supervised model
        self.classifier = DecisionTreeClassifier.train(training_argcands)

        return
Run Code Online (Sandbox Code Playgroud)

以下是提取的一个功能集的示例:

[({'phrase': u'np', 'punct_right': 'NULL', 'phrase_left-sibling': 'NULL', 'subcat': 'fcl=np np vp np …
Run Code Online (Sandbox Code Playgroud)

python text-processing classification scikit-learn feature-engineering

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

在google-diff-match-patch中做差异时如何忽略某些字符?

我正在使用google-diff-match-patch来比较自然语言中的纯文本。

如何使google-diff-match-patch忽略某些字符?(一些无关紧要的细微差别。)

例如,给定text1:

give me a cup of bean-milk. Thanks.
Run Code Online (Sandbox Code Playgroud)

和text2:

please give mom a cup of bean milk!  Thank you.
Run Code Online (Sandbox Code Playgroud)

(请注意,在“谢谢”之前有两个空格字符。)

google-diff-match-patch输出如下所示:

[please] give m(e)[om] a cup of bean(-)[ ]milk(.)[!] Thank(s)[ you].
Run Code Online (Sandbox Code Playgroud)

看来google-diff-match-patch仅忽略不同数量的空格。

我怎样才能告诉google-diff-match-patch也忽略像这样的字符[-.!]

预期结果将是

[please] give m(e)[om] a cup of bean-milk. Thank(s)[ you].
Run Code Online (Sandbox Code Playgroud)

谢谢。

diff text-processing nlp

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

tm自定义removePunctuation除了标签

我有来自twitter的推文语料库.我清理这个语料库(removeWords,tolower,删除URls),最后还想删除标点符号.

这是我的代码:

tweetCorpus <- tm_map(tweetCorpus, removePunctuation, preserve_intra_word_dashes = TRUE)
Run Code Online (Sandbox Code Playgroud)

现在的问题是,通过这样做,我也松开了#标签.有没有办法用tm_map删除标点符号但保留标签?

customization text-processing r punctuation tm

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

如何从markdown文件中删除YAML frontmatter?

我有包含YAML frontmatter元数据的markdown文件,如下所示:

---
title: Something Somethingelse
author: Somebody Sometheson 
---
Run Code Online (Sandbox Code Playgroud)

但是YAML的宽度各不相同.我可以使用Posix命令sed来删除文件开头处的那个前端吗?东西只是删除一切之间------,包容性,也忽略了文件的其余部分,如果有---小号在其他地方.

text-processing

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

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

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

提前致谢!

text-processing nlp text-mining summarization

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

nltk中similar()和一致性之间的差异

我已阅读从text1.similar("怪物")和text1.concordance("怪物").

当我不能得到之间的差额满意的答复text1.concordance('monstrous'),并text1.similar('monstrous')在Python自然语言处理工具包.

那么请你详细解释一下这个例子吗?

python text-processing nltk

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

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

我每天都会收到一个文件,其中有 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
查看次数