标签: text-processing

如何删除所有不以某些字符开头的行?

我需要找出一个正则表达式来删除所有不以"+"或" - "开头的行.

我想打印一个大型差异文件的纸质副本,但它在实际差异之前和之后显示5行左右.

regex vim text-processing replace sed

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

总结文本或简化文本

是否有任何库,最好是在python中,但至少是开源的,可以汇总和/或简化自然语言文本?

python text-processing nlp

30
推荐指数
2
解决办法
3万
查看次数

用于命名实体识别的NLTK

我正在尝试使用NLTK工具包从文本消息中获取提取位置,日期和时间.我刚刚在我的机器上安装了工具包,我编写了这个快速片段来测试它:

sentence = "Let's meet tomorrow at 9 pm";
tokens = nltk.word_tokenize(sentence)
pos_tags = nltk.pos_tag(tokens)
print nltk.ne_chunk(pos_tags, binary=True)
Run Code Online (Sandbox Code Playgroud)

我假设它将确定日期(明天)和时间(晚上9点).但令人惊讶的是,它未能认识到这一点.运行上面的代码时,我得到以下结果:

(S (GPE Let/NNP) 's/POS meet/NN tomorrow/NN at/IN 9/CD pm/NN)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解我是否遗漏了某些东西,或者NLTK还不够成熟,无法正确标记时间和日期.谢谢!

text-processing nlp machine-learning named-entity-recognition nltk

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

按列消除部分重复的行并保留最后一行

我有一个看起来像这样的文件:

2011-03-21 name001 line1
2011-03-21 name002 line2
2011-03-21 name003 line3
2011-03-22 name002 line4
2011-03-22 name001 line5
Run Code Online (Sandbox Code Playgroud)

对于每个名字,我只想要它的最后一次出现.所以,我希望结果如下:

2011-03-21 name003 line3
2011-03-22 name002 line4
2011-03-22 name001 line5
Run Code Online (Sandbox Code Playgroud)

有人可以用bash/awk/sed给我一个解决方案吗?

bash awk text-processing sed

24
推荐指数
3
解决办法
2万
查看次数

如何判断句子是否是一个问题(疑问句)?

是否有一个开源Java库/算法用于查找特定文本是否是一个问题?
我正在研究一个问题回答系统,需要分析用户输入的文本是否是一个问题.
我认为问题可以通过使用开源NLP库来解决,但它显然比简单的词性标记更复杂.因此,如果有人可以通过使用现有的开源NLP库来告诉算法,那也会很好.
如果您知道使用数据挖掘来解决此问题的库/工具包,请告诉我.虽然很难获得足够的数据用于培训目的,但我将能够使用堆栈交换数据进行培训.

java algorithm text-processing nlp data-mining

23
推荐指数
1
解决办法
6658
查看次数

如何继续NLP任务以识别意图和插槽

我想写一个关于天气问题的程序.我应该开始研究哪些算法和技术.

例如:这个周末在芝加哥会不会是晴天.我想知道intent = weather查询,date =这个周末,location = chicago.

用户可以以多种形式表达相同的查询.

我想解决一些约束形式,并寻找如何开始的想法.解决方案需要足够好.

text-processing nlp artificial-intelligence machine-learning

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

如何在一行中获得短统计的Git日志?

以下命令在控制台上输出以下文本行

git log --pretty=format:"%h;%ai;%s" --shortstat
ed6e0ab;2014-01-07 16:32:39 +0530;Foo
 3 files changed, 14 insertions(+), 13 deletions(-)

cdfbb10;2014-01-07 14:59:48 +0530;Bar
 1 file changed, 21 insertions(+)

5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz
772b277;2014-01-06 17:09:42 +0530;Qux
 7 files changed, 72 insertions(+), 7 deletions(-)
Run Code Online (Sandbox Code Playgroud)

我有兴趣让上面的格式像这样显示

ed6e0ab;2014-01-07 16:32:39 +0530;Foo;3;14;13
cdfbb10;2014-01-07 14:59:48 +0530;Bar;1;21;0
5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz;0;0;0
772b277;2014-01-06 17:09:42 +0530;Qux;7;72;7
Run Code Online (Sandbox Code Playgroud)

这将在某些报告中使用,该报告可以解析以分号分隔的值.事情是文本"\n 3 files changed, 14 insertions(+), 13 deletions(-)"(包括新行)被转换为3;14;13(没有新行)一个可能的角落案例是文本"5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz",其中没有这样的行.在那种情况下我想要;0;0;0

总体而言,目标是分析一段时间内的文件更改统计信息.我阅读了git日志文档,但找不到任何可以帮助我以这种格式呈现的格式.我提出的最好的是上面提到的命令.

因此,任何可以生成预期格式的命令或shell脚本都会有很大帮助.

谢谢!

git shell text-processing text-manipulation git-log

22
推荐指数
5
解决办法
8116
查看次数

使用SQL确定文本字段的字数统计信息

我最近一直致力于一些数据库搜索功能,并希望得到一些信息,如每个文档的平均单词(例如数据库中的文本字段).到目前为止我唯一找到的东西(没有在DB之外选择的语言处理)是:

SELECT AVG(LENGTH(content) - LENGTH(REPLACE(content, ' ', '')) + 1)
FROM documents
Run Code Online (Sandbox Code Playgroud)

这似乎有效*但你有其他建议吗?我目前正在使用MySQL 4(希望尽快转移到这个应用程序的第5版),但我也对一般解决方案感兴趣.

谢谢!

*我可以想象这是一个非常粗略的方法来确定它,因为它不会在内容等中考虑HTML.对于这个特定的项目来说没关系但是还有更好的方法吗?

更新:用"更好"来定义我的意思:更准确,更高效,或更"正确"(易于维护,良好实践等).对于我可用的内容,上面的查询足够快,并且对于这个项目是准确的,但我将来可能需要类似的东西(所以我问).

mysql sql text-processing word-count

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

在Scala中实现'yield'的首选方法是什么?

我正在为博士研究编写代码并开始使用Scala.我经常要做文字处理.我已经习惯了Python,其'yield'语句对于在大型(通常是不规则结构化的)文本文件上实现复杂的迭代器非常有用.类似的结构存在于其他语言(例如C#)中,这是有充分理由的.

是的我知道之前有过这样的线索.但它们看起来像是黑客攻击(或至少解释得很糟糕)的解决方案,这些解决方案并不能很好地运作并且通常具有不明确的局限性.我想编写这样的代码:

import generator._

def yield_values(file:String) = {
  generate {
    for (x <- Source.fromFile(file).getLines()) {
      # Scala is already using the 'yield' keyword.
      give("something")
      for (field <- ":".r.split(x)) {
        if (field contains "/") {
          for (subfield <- "/".r.split(field)) { give(subfield) }
        } else {
          // Scala has no 'continue'.  IMO that should be considered
          // a bug in Scala.
          // Preferred: if (field.startsWith("#")) continue
          // Actual: Need to indent all following code
          if (!field.startsWith("#")) {
            val some_calculation = { ... …
Run Code Online (Sandbox Code Playgroud)

python text-processing scala yield generator

20
推荐指数
3
解决办法
3822
查看次数

如何从Project Gutenberg文本中删除页眉/页脚?

我尝试过各种方法从Project Gutenberg文本中剥离许可证,用作语言学习项目的语料库,但我似乎无法想出一种无监督,可靠的方法.到目前为止,我提出的最好的启发式方法是剥离前二十八行和后一个398,它们适用于大量文本.关于我可以自动剥离文本的方法的任何建议(对于许多文本非常相似,但在每种情况下略有不同,以及一些不同的模板),以及如何验证该文本的建议文本已被准确删除,会非常有用.

text-processing nlp heuristics corpus stripping

19
推荐指数
2
解决办法
2634
查看次数