当前位置:   C# > 正文

解析单个句子的正则表达式是什么?

c#,regex,自然语言处理,机器学习,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我正在寻找一个很好的.NET正则表达式,我可以用它来解析文本正文中的单个句子.

它应该能够将以下文本块解析成六个句子:

Hello world! How are you? I am fine.
This is a difficult sentence because I use I.D.

Newlines should also be accepted. Numbers should not cause  
sentence breaks, like 1.23.

事实证明这比我原先想象的更具挑战性.

任何帮助将不胜感激.我将使用它来训练已知文本体系.



1> YOU..:

试试这个@"(\S.+?[.!?])(?=\s+|$)":

string str=@"Hello world! How are you? I am fine. This is a difficult sentence because I use I.D.
Newlines should also be accepted. Numbers should not cause sentence breaks, like 1.23.";

Regex rx = new Regex(@"(\S.+?[.!?])(?=\s+|$)");
foreach (Match match in rx.Matches(str)) {
    int i = match.Index;
    Console.WriteLine(match.Value);
}

结果:

Hello world!
How are you?
I am fine.
This is a difficult sentence because I use I.D.
Newlines should also be accepted.
Numbers should not cause sentence breaks, like 1.23.

当然,对于复杂的,你需要一个真正的解析器,如SharpNLP或NLTK.我只是一个快速而肮脏的人.

这是SharpNLP信息,其特点是:

SharpNLP是用C#编写的自然语言处理工具的集合.目前它提供以下NLP工具:

句子分割器

一个标记器

词性标注器

一个chunker(用于"查找非递归的句法注释,如名词短语块")

解析器

一个名字查找器

共同参与工具

WordNet词汇数据库的接口


+1指向我们SharpNLP,这是我以前没见过的,可能非常有用.

2> SLaks..:
var str = @"Hello world! How are you? I am fine. This is a difficult sentence because I use I.D.
Newlines should also be accepted. Numbers should not cause sentence breaks, like 1.23.";

Regex.Split(str, @"(?<=[.?!])\s+").Dump();

我在LINQPad中测试了这个.



3> peter.murray..:

使用正则表达式解析自然语言是不可能的.一句话的结尾是什么?许多地方都可能出现一段时期(egeg).您应该使用自然语言解析工具包,例如OpenNLP或NLTK.不幸的是,C#中的产品很少(如果有的话).因此,您可能必须创建Web服务或以其他方式链接到C#.

请注意,如果您依赖"ID"中的确切空格,将来会导致问题.您很快就会找到打破正则表达式的示例.例如,大多数人在他们的内容之后放置空格.

WP中的开放和商业产品有很好的总结(http://en.wikipedia.org/wiki/Natural_language_processing_toolkits).我们使用了其中几种.值得付出努力.

[你用"火车"这个词.这通常与机器学习相关(这是NLP的一种方法,并且已经用于句子分割).事实上,我提到的工具包包括机器学习.我怀疑那不是你的意思 - 而是你会通过启发式来表达你的表达.别!]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/csharp/detail/14617
推荐阅读
  • 如何解决《学习LISP的最佳方法是什么?》经验,为你挑选了14个好方法。lisp,scheme,common-lisp,python,php,程序员,html,emacs,自然语言处理,windows,linux,服务器,DevBox,在线... [详细]

  • 最近想学Python,在网上找了很多资料,发现Python路径-实验楼,不知道考不考谱?Python,python,linux,机器学习,算法,自然语言处理,django,go,windows,eclipse,vim,程序员,爬虫,DevB... [详细]

  • 如何解决《手动标记带有自定义标签的训练集》经验,为你挑选了0个好方法。python,nltk,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端... [详细]

  • 如何解决《自然语言处理中的二值化》经验,为你挑选了0个好方法。nlp,classification,machine-learning,libsvm,算法,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,... [详细]

  • 如何解决《自然语言中的范围模糊》经验,为你挑选了1个好方法。nlp,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站... [详细]

  • 机器学习是一种通用性的数据处理技术,其包含大量的学习算法,且不同的算法在不同的行业及应用中能够表现出不同的性能和优势。应用领域:金融领域、互联网领域、医学领域、自动化及机器人领域、生物领域、游戏领域、新闻领域、刑侦领域。机器学习,算法,机器... [详细]

  • 下面小编就为大家带来一篇python简单线程和协程学习心得(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧python,协程,线程,安全,c#,自然语言处理,爬虫,DevBox,在线流程图,编程,编程问... [详细]

  • 如何解决《R中的相关聚类》经验,为你挑选了2个好方法。nlp,r,cluster-analysis,自然语言处理,机器学习,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在... [详细]

  • 如何解决《学习自然语言处理的先决条件是什么?》经验,为你挑选了3个好方法。nlp,自然语言处理,xml,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发... [详细]

  • 如何解决《feedparser和谷歌新闻》经验,为你挑选了1个好方法。python,rss,feedparser,google-news,go,自然语言处理,xml,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,j... [详细]

  • 如何解决《在NLP中识别专有名词的策略》经验,为你挑选了2个好方法。nlp,named-entity-recognition,part-of-speech,自然语言处理,机器学习,DevBox,在线流程图,编程,编程问答,程序员,开发者工具... [详细]

  • 如何解决《开源文本到语音库》经验,为你挑选了4个好方法。c,open-source,text-to-speech,自然语言处理,ubuntu,html,服务器,机器人,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,... [详细]

  • 如何解决《你如何实现"你的意思"?》经验,为你挑选了7个好方法。nlp,算法,自然语言处理,python,go,html,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,... [详细]

  • PHP提取英文标题关键词程序有哪个?我需要一个能分解出标题中关键词的类或者方法,请问有哪些比较易用和有用。php,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳... [详细]

  • 如何解决《为什么朴素贝叶斯无法解决XOR问题》经验,为你挑选了1个好方法。nlp,naivebayes,自然语言处理,算法,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在... [详细]

  • 如何解决《意义层次》经验,为你挑选了1个好方法。nlp,machine-learning,wordnet,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开... [详细]

  • 如何解决《计算机科学问题仍然存在问题》经验,为你挑选了3个好方法。computer-science,算法,css,自然语言处理,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳... [详细]

  • 如何解决《数据挖掘开源工具》经验,为你挑选了5个好方法。open-source,data-mining,数据挖掘,python,机器学习,自然语言处理,apache,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,j... [详细]

  • 如何解决《一种更好的变长字符串相似度排序算法》经验,为你挑选了15个好方法。fuzzy-search,similarity,ranking,string-matching,算法,html,ruby,sql,c#,go,python,php,... [详细]

  • 如何解决《用于确定语句/文本的正面或负面的算法》经验,为你挑选了5个好方法。algorithm,nlp,算法,自然语言处理,python,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,un... [详细]

相关标签
  

闽ICP备14008679号