汉语语句分析工具(中文语义分析工具)

语宇社区 唯美句子 1.1K+ 0

本文目录汇总:

谁会现代汉语的句子分析?快帮帮我!

一.指出下列词语间的语义关系

§1.你别说 他了!(“你”是施事,“他”是受事)

§2.我吃 大碗,你吃小碗! (“我、你”都是施事,“大碗、小碗”都是工具)

§3.医生们迅速地把他 推到手术台上。 (“医生们”是施事,“他”是受事)

§4.她听得那么津津有味。 (“她”是施事,“得”字后的是状态补语,也就是说“津津有味”是状态)

§5.池塘里 躺着一头大水牛。(“池塘里”是处所,“大水牛”是主事)

§6.他送了我一束玫瑰花。 (“他”是施事,“我”是与事,“玫瑰花”是受事)

§二.指出下列各句中划线词语的语义指向。(没有划线词语,可以用括号标示出来,可以看看语义指向分析)

§1.我们对这几套方案进行了比较。

§2.她对女儿总有说不完的话。

§3.玛丽的普通话比我说得还标准。

§4.孩子们在操场上玩得那么兴高采烈。

§5.他这个月踢坏了好几双球鞋了

§6.他悄悄地把标语贴在了墙上。

7.血压急剧下降(指向动词){答案是像这样写吗?}

§三.从语义关系或语义指向的角度,对下列两个句子加以简要分析。

§1.她对我的态度很不满。

§2.她对我的态度很生硬。

例1的结构应该是 “她”是主语,“对我的态度”是介宾结构作状语,修饰谓语“很不满”,意思是她感到不满。例2“她对我的态度”是主语,“很生硬”是谓语。两个句子反映了“对”的不同语义解读。例1是作介词,例2是相当于动词“对待”。

部分常用分词工具使用整理

以下分词工具均能在Python环境中直接调用(排名不分先后)。

1、jieba(结巴分词) 免费使用

2、HanLP(汉语言处理包) 免费使用

3、SnowNLP(中文的类库) 免费使用

4、FoolNLTK(中文处理工具包) 免费使用

5、Jiagu(甲骨NLP) 免费使用

6、pyltp(哈工大语言云) 商用需要付费

7、THULAC(清华中文词法分析工具包) 商用需要付费

8、NLPIR(汉语分词系统) 付费使用

1、jieba(结巴分词)

“结巴”中文分词:做最好的 Python 中文分词组件。

项目Github地址:jieba

安装 :

pip install jieba

使用 :

import jieba

jieba.initialize()

text = '化妆和服装'

words = jieba.cut(text)

words = list(words)

print(words)

2、HanLP(汉语言处理包)

HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

项目Github地址:pyhanlp

安装:

pip install pyhanlp

使用 :

import pyhanlp

text = '化妆和服装'

words = []

for term in pyhanlp.HanLP.segment(text):

words.append(term.word)

print(words)

3、SnowNLP(中文的类库)

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。

项目Github地址:snownlp

安装:

pip install snownlp

使用:

import snownlp

text = '化妆和服装'

words = snownlp.SnowNLP(text).words

print(words)

4、FoolNLTK(中文处理工具包)

可能不是最快的开源中文分词,但很可能是最准的开源中文分词。

项目Github地址:FoolNLTK

安装:

pip install foolnltk

使用:

import fool

text = '化妆和服装'

words = fool.cut(text)

print(words)

5、Jiagu(甲骨NLP)

基于BiLSTM模型,使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、关键词抽取、文本摘要、新词发现等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈给大家。

项目Github地址:jiagu

安装:

pip3 install jiagu

使用:

import jiagu

jiagu.init()

text = '化妆和服装'

words = jiagu.seg(text)

print(words)

6、pyltp(哈工大语言云)

pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。

项目Github地址:pyltp,3.4模型下载链接:网盘

安装:

pip install pyltp

使用:

import pyltp

segmentor = pyltp.Segmentor()

segmentor.load('model/ltp_data_v3.4.0/cws.model') # 模型放置的路径

text = '化妆和服装'

words = segmentor.segment(text)

words = list(words)

print(words)

7、THULAC(清华中文词法分析工具包)

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与 社会 人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。

项目Github地址:THULAC-Python

安装:

pip install thulac

使用:

import thulac

thu = thulac.thulac(seg_only=True)

text = '化妆和服装'

words = thu.cut(text, text=True).split()

print(words)

NLPIR(汉语分词系统)

主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台。

项目Github地址:pynlpir

安装:

pip install pynlpir

下载证书覆盖到安装目录,NLPIR.user 例如安装目录:/usr/lib64/python3.4/site-packages/pynlpir/Data

使用 :

import pynlpir

pynlpir.open()

text = '化妆和服装'

words = pynlpir.segment(text, pos_tagging=False)

print(words)

pynlpir.close()

oracle全文索引既有英文又有中文应该怎样设置分词

一、设置词法分析器

Oracle实现全文检索,其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle称为term)找出来,记录在一组以dr$开头的表中,同时记下该term出现的位置、次数、hash值等信息。检索时,Oracle从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是该机制的核心,它决定了全文检索的效率。Oracle针对不同的语言提供了不同的lexer,而我们通常能用到其中的三个:

basic_lexer:针对英语。它能根据空格和标点来将英语单词从句子中分离,还能自动将一些出现频率过高已经失去检索意义的单词作为‘垃圾’处理,如if , is等,具有较高的处理效率。但该lexer应用于汉语则有很多问题,由于它只认空格和标点,而汉语的一句话中通常不会有空格,因此,它会把整句话作为一个term,事实上失去检索能力。以‘中国人民站起来了’这句话为例,basic_lexer分析的结果只有一个term ,就是‘中国人民站起来了’。此时若检索‘中国’,将检索不到内容。

chinese_vgram_lexer:专门的汉语分析器,支持所有汉字字符集(ZHS16CGB231280ZHS16GBKZHT32EUCZHT16BIG5ZHT32TRISZHT16MSWIN950ZHT16HKSCSUTF8)。该分析器按字为单元来分析汉语句子。‘中国人民站起来了’这句话,会被它分析成如下几个term: ‘中’,‘中国’,‘国人’,‘人民’,‘民站’,‘站起’,起来’,‘来了’,‘了’。可以看出,这种分析方法,实现算法很简单,并且能实现‘一网打尽’,但效率则是差强人意。

chinese_lexer:这是一个新的汉语分析器,只支持utf8字符集。上面已经看到,chinese vgram lexer这个分析器由于不认识常用的汉语词汇,因此分析的单元非常机械,像上面的‘民站’,‘站起’在汉语中根本不会单独出现,因此这种term是没有意义的,反而影响效率。chinese_lexer的最大改进就是该分析器能认识大部分常用汉语词汇,因此能更有效率地分析句子,像以上两个愚蠢的单元将不会再出现,极大提高了效率。但是它只支持utf8,如果你的数据库是zhs16gbk字符集,则只能使用笨笨的那个Chinese vgram lexer.

如果不做任何设置,Oracle缺省使用basic_lexer这个分析器。要指定使用哪一个lexer,可以这样操作:

BEGIN

ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer');

END;

/

其中my_lexer是分析器名。

二、建立全文索引

在建立intermedia索引时,指明所用的lexer:

CREATE INDEX myindex ON mytable(mycolumn) indextype is ctxsys.context parameters('lexer my_lexer');

※个人体会:全文索引建立后,用pl/sql developer工具view table,在index这一栏是看不到索引信息的。

而本人在删除全文索引时遇到过一下报错:

SQL drop index searchkeytbl_key;

drop index searchkeytbl_key

ORA-29868: cannot issue DDL on a domain index marked as LOADING

解决方法:

ORA-29868: cannot issue DDL on a domain index marked as LOADING

说明:在创建索引的时候断开、重启等导致索引中断没有执行成功,之后再drop或者rebuild等操作的时候都会报此错误

解决:只能drop index ind_name force强行删除,然后再重建

三、索引同步维护

用以下的两个job来完成(该job要建在和表同一个用户下) :

VARIABLE jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''index_name'');',

SYSDATE, 'SYSDATE + (1/24/4)');

commit;

END; //同步

VARIABLE jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''myindex'',''FULL'');',

SYSDATE, 'SYSDATE + 1');

commit; //优化

建完后手动运行下:

exec dbms_job.run(jobno);

※个人体会:运行job可能会有问题,此时可以单独运行索引,尝试一下

exec ctx_ddl.sync_index('index_name');

如果单独运行没有问题,则检查job是否写错或者当前操作的oracle数据库用户有无运行存储过程的权限

SQL exec dbms_job.run(190);

begin dbms_job.run(190); end;

ORA-12011: execution of 1 jobs failed

ORA-06512: at "SYS.DBMS_IJOB", line 406

ORA-06512: at "SYS.DBMS_JOB", line 272

ORA-06512: at line 1

以上报错就是用户没有运行任何存储过程造成的,此时需要对用户加上这个权限:

SQL grant execute any procedure to oracle_username;

再看一下job的情况

select * from user_jobs;

四、测试

关联查询: select * from table_name where contains (column_name,'keyword') 0;

SQL select * from searchkeytbl where type='城市' and contains (key,'杨浦') 0;

USERNAME TYPE KEY

-------------------- ---------------------------------------- --------------------------------------------------------------------------------

mujian80 城市 上海市杨浦区

五、问题

加全文索引遇到的问题(不断更新)

SQL create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters('lexer gh_ghname_lexer');

create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters('lexer gh_ghname_lexer')

ORA-24795: Illegal COMMIT attempt made

ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine

ORA-20000: Oracle Text error:

DRG-50857: oracle error in drvddl.IndexCreate

ORA-20000: Oracle Text error:

DRG-50857: oracle error in drvdml.MaintainKTab

ORA-24795: Illegal COMMIT attempt made

ORA-06512: at "CTXSYS.DRUE", line 160

ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364

To avoid the error, please use one of the following solutions

1. Don't use a 32k-blocksized tablespace to store the internal index objects

- or -

2. Download Patch 5596325 from Metalink and apply it as described in the README file.

看一下 可能是用于创建索引的表空间不够了

reports——DBA——total free space pl/sql developer工具,查看表空间的剩余空间

select * from v$datafile; 查看数据文件信息

现代汉语中的句子分析法有哪些?具体怎么分析?

主要有(一)句子成分分析法

(二)层次分析法

(三)其他句子分析方法

句子成分分析法又称“中心词分析法”,是传统语法学使用的句子分析方法。

①句子分析就是分析一个句子(单句)的句子成分。

句子成分有六种——主语、谓语、宾语、定语、状语、补语。

②词与句子成分之间存在对应关系,短语中只有联合短语和主谓短语可以直接充当句子成分。

③主语和谓语是主要成分,宾语和补语是次要成分,定语和状语是附加成分。

把主谓短语看作句子,认为句子总是由主谓短语充当。当主谓短语在句中作成分时,就叫做“小句”或“句子形式”;将非主谓句称作“无主句”。

④偏正短语要先找出其中的中心语,述宾短语或述补短语要先找出其中的谓语中心词。

在分析过程中:

首先将句子分为主语部分和谓语部分,找出全句的主要成分——主语和谓语;

再看谓语由哪种动词充当,以及后面跟着的宾语和补语;

在主语部分找出附加在主语前面的定语,在谓语部分找出附加在谓语前的状语。

例如分析“未来几十年里,地球能源将面临严重的短缺问题”。

第一步:找出主要成分

未来几十年里,我们生活的地球能源将面临严重的短缺问题。

第二步:找出次要成分

未来几十年里,我们生活的地球能源将面临严重的短缺问题。

第三步:找出附加成分

[未来几十年里],(我们生活)的地球能源[将]面临(严重)的(短缺)问题。

层次分析法,又称“直接成分分析法”,是对句法单位(包括短语和句子)的直接成分进行结构层次分析的方法。由于切分过程中尽可能采用二分,所以层次分析法又称作“二分法”。

语法从表面上看是线性排列的符号序列。线性排列是指按照时间先后顺序说出或写出的形式。但是语法结构却是有层次性的,层次是指句法单位在组合时所反映出来的不同的先后顺序。

表层的线性关系背后暗含着隐性的层次关系。小的语法单位是大语法单位的组成部分,大的语法单位是由小的语法单位组合而成的,本身又可以成为更大语法单位的组成部分。

语法结构的每个层次一般直接包含比它小的两个语法单位,这两个小的语法单位就是直接成分。每一个直接成分又可以包含更小的直接成分。

例如:

我们 进行 社会 调查 分析过程

|主||____谓_______|

|_述 | 宾____ |

|_定)中 | 更多例子

层次分析法就是逐层将一个句法单位(联合短语等由多个直接成分组成的短语除外)切分成两个直接成分,直到不能再切分为止的句子分析方法。

层次分析法的分析过程主要包括两个步骤:第一步是切分结构层次,第二步是确定结构关系。

例如:

他 去年 去 了 一趟 美国。 分析过程

|__||___________________| 主谓关系

|___||______________| 状中关系

|________| |__| 述宾关系

|_| |___| 述补关系 更多例子

切分过程中应注意:

①第一步切分非常重要,第一步切分不当,后面便容易全都切错。

②必须逐层切分,直至分析出每个实词,语素不需要切分。

③为避免切分过程中的遗漏,一般采用从左到右、从上到下、逐块切分的分析步骤。

层次分析法中常用的图解表示法是切分法、组合法和树形图。

①切分法

切分法是最常用的方法,将所要分析的短语或句子作为一个整体,从大到小,逐层切分。

例如:

申奥 成功 有助于 中国 的 改革 与 开放。 分析过程

|_ 主 __| |______ 谓 ________________|

|主| |谓| |_述_ |______ 宾___________|

|__ 定_)_ 中_______|

| 联 + 合 |

②组合法

组合法是把所要分析的短语或句子切分到单词,然后从小到大,依次组合起来。例如:

他 弟弟 在 北京 念 大学 分析过程

|_定中_| |_介宾_| |_述宾_|

| |____状中____|

|_____主谓______|

③树形图

树形图是把有关的结构分析用竖线和斜线连接起来,从而显示出句法单位内部的结构关系。例如:

S

/ \

主语 谓语

/ \ / \

偏 正 述 宾

| | | |

取暖 设备 出现 故障 分析过程

(三)其他句子分析方法

1、变换分析

2、语义特征分析

3、语义指向分析

变化分析是通过移位、添加、删除、替换等方法来考察两种句法结构之间的关系和变换规则的分析方法。 变换分析着眼于句法结构的外部分析,考察具有内在联系的不同句法结构之间的联系。例如:

A、台上坐着主席团

B、台上演着梆子戏

C、山上架着炮

三个例句包含的词类相同(处所名词+动词+助词+名词),排列顺序相同,内部层次关系相同,但是A句表示静态意义(台上有主席团)、B句表示动态意义(梆子戏正在上演)、C句既可表示静态意义(山上有炮),也可表示动态意义(山上正在架炮)。

下面我们通过变换分析法分析三个句子。

A句可以变换为“主席团坐在台上”。类似的例子如:

门口站着人—→人站在门口 床上躺着人—→人躺在床上

黑板上写着字—→字写在黑板上 墙上挂着画—→画挂在墙上

B句可以变换为“台上正在演梆子戏”。类似的例子如:

外面下着大雨—→外面正在下大雨 操场上放着电影—→操场上正在放电影

教室里上着课—→教室里正在上课 隔壁打着电话—→隔壁正在打电话

C句既可以按照A句模式变换,也可以按照B句模式变换。

山上架着炮—→炮架在山上/山上正在架炮

类似的例子如:院墙外修着马路—→马路修在院墙外/院墙外正在修马路

通过变换分析,不但将内部层次关系相同的“台上坐着主席团”、“台上演着梆子戏”、“山上架着炮”区别开来,而且分化了类似“山上架着炮”的歧义。

语义特征分析是分析和概括同一句式中处于相同位置上的词所共有的语义特征的分析方法。例如:

A类:

他赠了幅国画给我—→他赠给了我一幅国画

学校奖了三千元给他—→学校奖给了他三千元

B类:

我买了斤香蕉给他—→*我买给了他一斤香蕉

我要了个名额给他—→*我要给了他一个名额

A类句子与B类句子都是连谓句,内部层次结构相同,但表达的语义不同:

A类句子包含两个动作,但说的是同一件事情(“赠国画”和“给我”是国画由他转移到我的过程)。B类句子也包含两个动作,但说的彼此分离的两件事情(“我买了斤香蕉”和“给他”互相分离的两个过程)。

A类句子与B类句子的不同关键在于动词语义特征上的差别。

A类句子中的“赠、奖”具有“给予”的语义特征,而没有“取得”的语义特征。B类句子中的动词“买、要”具有“取得”的语义特征,而没有“给予”的语义特征。

语义指向是指句法结构中的某一成分在语义上指向相关的另一个成分。

语义指向分析就是通过分析句中某一成分的语义指向来解释和说明某一语法现象的分析方法。

通过语义指向分析,可以把一个狭义同构的句式分化成语义不同的句式。

例如,同为“动词+形容词+了”的述补结构,其补语的语义指向各不相同。

砍光了(补语指向“砍”的受事,“树砍光了”)

砍累了(补语指向“砍”的施事,“我砍累了”)

砍快了(补语指向“砍”这一动作的本身,“你砍快了,得慢点砍”)

砍钝了(补语指向“砍”所利用的工具,“刀砍钝了”)

砍坏了(补语指向工具或受事,“他把刀砍坏了”、“桌子砍坏了”)

砍疼了(补语指向受事或施事的隶属部分,“把他的脚砍疼了”、“忙了半天,胳膊都砍疼了”)

语义指向分析的主要作用是在语法形式分析的基础上进一步进行语义解释,揭示句法成分之间在语义上的种种联系,使许多从形式上看来完全相同的结构分化为在语义上并不完全相同的结构。

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~