我需要找出一个正则表达式来删除所有不以"+"或" - "开头的行.
我想打印一个大型差异文件的纸质副本,但它在实际差异之前和之后显示5行左右.
是否有任何库,最好是在python中,但至少是开源的,可以汇总和/或简化自然语言文本?
我正在尝试使用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
我有一个看起来像这样的文件:
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给我一个解决方案吗?
是否有一个开源Java库/算法用于查找特定文本是否是一个问题?
我正在研究一个问题回答系统,需要分析用户输入的文本是否是一个问题.
我认为问题可以通过使用开源NLP库来解决,但它显然比简单的词性标记更复杂.因此,如果有人可以通过使用现有的开源NLP库来告诉算法,那也会很好.
如果您知道使用数据挖掘来解决此问题的库/工具包,请告诉我.虽然很难获得足够的数据用于培训目的,但我将能够使用堆栈交换数据进行培训.
我想写一个关于天气问题的程序.我应该开始研究哪些算法和技术.
例如:这个周末在芝加哥会不会是晴天.我想知道intent = weather查询,date =这个周末,location = chicago.
用户可以以多种形式表达相同的查询.
我想解决一些约束形式,并寻找如何开始的想法.解决方案需要足够好.
text-processing nlp artificial-intelligence machine-learning
以下命令在控制台上输出以下文本行
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脚本都会有很大帮助.
谢谢!
我最近一直致力于一些数据库搜索功能,并希望得到一些信息,如每个文档的平均单词(例如数据库中的文本字段).到目前为止我唯一找到的东西(没有在DB之外选择的语言处理)是:
SELECT AVG(LENGTH(content) - LENGTH(REPLACE(content, ' ', '')) + 1)
FROM documents
Run Code Online (Sandbox Code Playgroud)
这似乎有效*但你有其他建议吗?我目前正在使用MySQL 4(希望尽快转移到这个应用程序的第5版),但我也对一般解决方案感兴趣.
谢谢!
*我可以想象这是一个非常粗略的方法来确定它,因为它不会在内容等中考虑HTML.对于这个特定的项目来说没关系但是还有更好的方法吗?
更新:用"更好"来定义我的意思:更准确,更高效,或更"正确"(易于维护,良好实践等).对于我可用的内容,上面的查询足够快,并且对于这个项目是准确的,但我将来可能需要类似的东西(所以我问).
我正在为博士研究编写代码并开始使用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) 我尝试过各种方法从Project Gutenberg文本中剥离许可证,用作语言学习项目的语料库,但我似乎无法想出一种无监督,可靠的方法.到目前为止,我提出的最好的启发式方法是剥离前二十八行和后一个398,它们适用于大量文本.关于我可以自动剥离文本的方法的任何建议(对于许多文本非常相似,但在每种情况下略有不同,以及一些不同的模板),以及如何验证该文本的建议文本已被准确删除,会非常有用.