目录

一、中文句子类型主要类别

1、陈述句(statement)

主语为首(subject_front),例:大家对这件事都很热心

主题为首(theme_front),例:红绿灯,真好玩

复合句(complex),例:他们飞的好高好远,穿过白云,越过海洋

2、特殊句(special)

把字句(ba_struct),例:阳光把冷冷的冬天赶走了

被字句(bei_struct),例:衣服被雨淋湿了

存在句(exist),例:门口有两头狮子

感叹句(sigh),例:真谢谢你!

祈使句(Imperative),例:小心!

连字句(lian_struct),例:我不但眼睛不舒服,好像连耳朵也优点疼

是字句(shi_struct),例:我的爸爸是老师

比较句(compare),例:我的力气比你大

3、疑问句(question)

疑问词问句(特指问句)(question_words),例:你什么时候回来

是非问句(whether),例:你今天会准时下课吗

选择问句(choice),例:他是坐火车来的,还是坐汽车来的

正反问句(pos_and_neg),例:你怕不怕风吹

附加问句(attach),例:这是小明的,是不是

反问句(contrary),例:难道你不喜欢他吗

二、中文句子类型简单分析

1、陈述句

陈述句的五种基本句型:

主语+谓语(及物动词)+宾语

主语+谓语(及物动词)+间接宾语+直接宾语

主语+谓语(及物动词)v.+宾语+宾语补足语;

其中,主语为首中的主语一般为人称,复合句一般有多个并列的动宾结构。

2、感叹句

带有浓厚的感情的句子。它表示快乐、惊讶、悲哀、厌恶、恐惧等浓厚的感情。感叹句一般用降调,句末都用叹号(!)表示

由叹词构成的感叹句

哎呦!救命呦!

由名词构成的感叹句

天哪!这一定是没了命了!

口号或祝词式的感叹句

各族人民大团结万岁!

由“多、多么、好、真”等副词和句尾语气词构成的感叹句

那该有多好啊!

3、祈使句

祈使句的作用是要求、请求或命令、劝告、叮嘱、建议别人做或不做一件事。

祈使句的句末一般用感叹号,但是有些祈使句的语气较弱,可以用句号结尾。

祈使句可以用语气词“吧”作结尾,也可以不用语气词。

祈使句可以表示命令、请求、禁止、劝阻等。 祈使句中的主语常常被省去。

(1)表示命令的祈使句:保持肃静!起立!立定!站起来!快去救火!等

(2)表示请求的句式:请……(请等我一会);例:请给我们多提意见!您请坐啊!这个问题你来回答吧!帮帮我的忙吧!等

(3)表示禁止的句式:不准……,不要……,别……(此处不准停车!);例:别动!不许胡说!此处不准吸烟!你不要去!谁也不要随便说话!等

(4)表示劝阻的句式:请勿……(请勿在车厢内饮食);例:要好好听老师话啊!你们几个休息一会儿吧!大家都少说几句吧!你们可别拿他开玩笑了!

4、疑问句(参看)

(1)是非问句

主要特点是回答时用肯定或者否定答句,是非问句一般用语气助词“吗”;

比如:会|是…吗,好吗,对吗,是吗,可以吗,能吗,信吗,会吗,怕吗,算吗等。

(2)特指问句(疑问词问句)

特指问句的语序与陈述句相同,提问哪个部分,就把疑问词语放在哪个部分的位置上,加上疑问语调,陈述句就变成了特指问句。

特指问句中的疑问词语绝大多数为疑问代词,如“谁、哪儿、什么”等;还有一些疑问词语为“多+adj”格式,如“多大、多高、多长”等。

(3)选择问句

选择问句用选择形式提出两种(或多种)不同情况,要求对方选择其中一种情况作为回答。选择问句常用“是……还是……”连接,“是”也可以省略。

(4)正反问句

正反问句是把谓语的肯定形式和否定形式并列起来然后提问的疑问句,回答者可选择其中之一作为回答。正反问句可以在句尾加或者不加“呢”,但是不能加“吗”。

比如:会不会,是不是,能不能,信不信,怕不怕,可不可以,算不算等。

(5)反问句

反问句是用疑问句的形式来表示肯定或否定的意义,带有很强的强调意味。

比如:难到,难道不,怎么会,怎能,怎么能,莫非,难不成,不是吗等。

注意:是非问句和正反问句的差异,是非问句一般用语气助词“吗”,是非问句和正反问句关联性很大,有的比较难区分。

5、特殊句

关于特殊句中的把字句、被字句、存在句、连字句和是字句等都可以通过关键词和语法结构判断。

(1)存在句

存在句:某处(某人)有/没有某物

(2)比较句

比较句:现代汉语比较句是指谓语中含有比较词语或比较格式的句子。

介词‘比’;太湖比西湖大

固定结构:跟(和,同,与,像)……一样;今天跟昨天一样暖和  (正则)

以‘有’引进比较对象的比较句;弟弟有(没有)哥哥那么高

用‘不如’引入比较对象;看这种电影还不如去睡觉

以‘像’引进比较对象;安娜像她妈妈那么漂亮

用‘越来越’比较句子;天气越来越暖和了

三、将句法分析与正则结合标注句子类型

数据集语料可以选择公开的对话数据集:

可以使用LTP,StanfordCoreNLP等分析句子类型的语法结构;

根据句子特定结构的关键词,构造正则表达式;

将正则表达式与句法分析结合对疑问句,陈述句和特殊句进行句子类型标注;

可以使用XGBoost等模型进行训练和测试或者直接使用正则和句法结构进行判别;

四、句子类型调研及规则总结

根据正则和句法分析归纳总结句子类型的规则以及正则pattern和句法结构等;

使用人工标注的句子类型数据进行测试,并逐步完善句法规则;

测试结果达到预期

五、中文句子类型分类工具sentypes实现

1、基于C++中regex库组件构建正则表达式接口类RegularEX;

2、完成句法分析LTP在Linux下的C++源码的编译和测试;

3、构建基于C++的句法分析类Parsing,利用该类能够进行分词、词性标注和句法分析;

4、基于正则类RegularEX、句法分析类Parsing和句子类型规则等完成所有句子类型的分类代码;

6、将库文件,模型文件和代码等文件打包,在该文件夹下,执行make命令,即可生成可执行文件sentypes,即为句子类型分类工具;

文件主要包括:(1)依赖的库文件:include、lib、thirdparty;(2)LTP模型:ltp_model;(3)句法分析和正则表达式类的头文件:parsing.h、regular_ex.h;(4)句子类型分类主程序:sentence_type.cpp;(5)Makefile文件

7、sentypes工具包含两个命令参数,分别是输入文件和输出文件,其中,输入文件是句子文件,输出文件是标注好句子类型的结果文件;

例:Linux下运行sentypes工具

$ ./sentypes data/test_sen data/results

其中,输入文件test_sen的格式及部分内容如下

输出文件results的格式及结果如下

注:

句子类型判别工具sentypes的句子优先级为:正反问句,反问句,选择问句,疑问词问句,是非问句;祈使句,把字句,被子句,比较句,存在句,是字句,连字句;陈述句;其他句子。

(1)目前句子类型共包含14类,其中疑问句型5类,特殊句型7类,陈述句中将简单句和复合句归为一类,即主语为首的陈述句型,未识别的句型标注为“other”类。

(2)如果句子同时有两种或多种句型,则按优先级标注句子类型;

Java正则判断中文字符串句型_NLP中文句子类型判别和分类实现相关推荐

  1. Java判断一个字符串是否有中文

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  2. Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符

    Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...

  3. Arduino 统计中文字符串中的中文标点符号数量

    Arduino 统计中文字符串中的中文标点符号数量 先科普数据类型和所占内存空间大小 一个英文字符等于1个字节,一个中文(含繁体)字符等于3个字节:中文标点占3个字节,英文标点占1个字节. 1Byte ...

  4. java判断当前浏览器类型_[Java教程]判断用户请求时使用的浏览器类型

    [Java教程]判断用户请求时使用的浏览器类型 0 2016-09-01 15:00:04 在进行微信公众账号开发的时候,其中很大一块是微站点的开发,我们需要知道当前的浏览器是微信内置的浏览器,那么如 ...

  5. java正则匹配汉字_正则表达式匹配中文汉字

    文章告诉你如何利用php教程 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法. preg_match("/[a- ...

  6. java中判断字段真实长度(中文2个字符,英文1个字符)的方法

    public class Char_cn {    public static void main(String[] args) {   // TODO Auto-generated method s ...

  7. java正则判断日期格式_Java中用正则表达式判断日期格式是否正确

    1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...

  8. java 判断数字_如何在java中判断一个字符串是否是数字

    前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...

  9. python中文字符串编码_python中文乱码 字符串和编码

    Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了. Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节).现代操作系统和大 ...

最新文章

  1. 我的微型计算机,我的OC(超频)18年追忆!
  2. 没想到,因为这场AI大会,我也可以凡尔赛一把
  3. SQL CROSS JOIN
  4. 第7章:项目成本管理习题总结
  5. 让执行程序引用特定目录下的Dll
  6. 汇编64讲(搞免杀、破解必看)
  7. META-INF目录是干啥用的?
  8. C#起步:WinForm当中的字符
  9. IView的Form表单自定义验证需注意事项
  10. matplotlib axis
  11. Spring-AnnotationConfigApplicationContext/ClassPathXmlApplicationContext
  12. Matlab代码生成任意边长等间距正六边形采样点
  13. 电子计算机及其部件,2021年电子计算机及其部件行业营销部门表格模板汇总.docx...
  14. OpenCV实战案例——车道线识别
  15. 30分钟看懂经济机器是如何运行的?
  16. Angluar编译过程中出现的TS2339问题
  17. 《我在大学挺好的》之——选择了计算机专业
  18. autojs遍历当前页面所有控件_伙伴系统:页面分配器
  19. STM32时钟简介及系统时钟频率的更改方式
  20. Vue:前端体系与前后端分离

热门文章

  1. python selenium webdriver方法封装(find_element_by)
  2. java(系统)实战1
  3. 《中秋书月》月圆之夜,我和德鲁克
  4. WebHttpBinding的流传输模式让我头大了
  5. 2010信息科工作总结
  6. SAP Control framework
  7. Excel 2007 的重大bug
  8. 使用Gitblit 搭建Windows Git服务器
  9. C#将json字符串解析成对象
  10. PHP的运行机制与原理(底层)