CN111160003B - 一种断句方法及装置 - Google Patents

一种断句方法及装置 Download PDF

Info

Publication number
CN111160003B
CN111160003B CN201811320543.6A CN201811320543A CN111160003B CN 111160003 B CN111160003 B CN 111160003B CN 201811320543 A CN201811320543 A CN 201811320543A CN 111160003 B CN111160003 B CN 111160003B
Authority
CN
China
Prior art keywords
sentence
breaking
length
character sequence
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811320543.6A
Other languages
English (en)
Other versions
CN111160003A (zh
Inventor
李晓普
王阳阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Orion Star Technology Co Ltd
Original Assignee
Beijing Orion Star Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Orion Star Technology Co Ltd filed Critical Beijing Orion Star Technology Co Ltd
Priority to CN201811320543.6A priority Critical patent/CN111160003B/zh
Publication of CN111160003A publication Critical patent/CN111160003A/zh
Application granted granted Critical
Publication of CN111160003B publication Critical patent/CN111160003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)

Abstract

本申请公开一种断句方法及装置,属于自然语言处理技术领域,该方法包括:在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;将本次截取的字符序列输入到预先训练的断句模型中进行断句;若断句后的字符序列中包含断句标识,输出断句标识之前的字符,将断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为断句模型的下次输入,这样,断句标识后的字符还可参与下一次断句处理,不会丢弃任何一个字符,并且,每次输出的均是断句处理后的语义完整的句子,易于阅读和理解,因此,用户体验较好。

Description

一种断句方法及装置
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种断句方法及装置。
背景技术
近年来,随着语音识别技术的快速发展,语音识别的应用领域也越来越多,如发语音消息,同声传译等。
一般地,在发语音消息时,用户说的话都比较短、且语义完整,所以不需要进行断句处理,而在同声传译中,可能需要实时地向用户展示发言者的讲话内容,目前在对发言者的语音数据进行识别得到字符序列以后,只是实时地向用户展示这些字符,并未对字符序列进行断句处理,这样,向用户展示的可能会是断续的语义不完整的句子,非常不易于阅读和理解,因此,用户体验也比较差。
发明内容
本申请实施例提供一种断句方法及装置,用以解决现有技术中在进行语音识别后,向用户展示的句子不完整、不易于阅读和理解,用户体验差的问题。
第一方面,本申请实施例提供的一种断句方法,包括:
在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;
将本次截取的字符序列输入到预先训练的断句模型中进行断句;
若断句后的字符序列中包含断句标识,输出断句标识之前的字符,将断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为断句模型的下次输入。
采用上述方案,对缓存中利用语音识别技术得到的字符序列,每次从起始位置开始截取出第一长度的字符序列,之后,将本次截取的字符序列输入到断句模型中进行断句处理,若确定断句后的字符序列中包含断句标识,则输出断句标识之前的字符,并将断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列进行拼接,作为断句模型的下次输入,这样,断句标识后的字符还可参与下一次断句处理,不会丢弃任何一个字符,并且,每次输出的均是断句处理后的语义完整的句子,易于阅读和理解,因此,用户体验比较好。
在具体实施时,若想要使每次截取的字符序列的长度相同,则可设置第二长度与第一长度相同;若想要使每次输入到断句模型中的字符序列的长度相同,则可设置第二长度与断句标识之后的字符的长度之和为第一长度。
在一种可能的实施方式下,断句后的字符序列中可能会存在至少两个断句标识,此时,可按照这至少两个断句标识的排列顺序,逐次输出每个断句标识之前的字符;或者,将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
在一种可能的实施方式下,断句后的字符序列中不包含断句标识,此时,可将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入。
在一种可能的实施方式下,第三长度与第一长度相同。
在一种可能的实施方式下,将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为断句模型的下次输入之后,还可将第一长度与第三长度之和作为更新后的第一长度,并基于更新后的第一长度进行下次断句处理。
在一种可能的实施方式下,根据以下步骤训练断句模型:
对获取的每个语料句子进行分词处理,确定该语料句子包含的词语;
确定该语料句子包含的词语中的稀有词语,利用子词切分算法对稀有词语进行切分处理;
将分词处理和切分处理后得到的词语形成的序列,输入到深度学习模型中进行断句标注;以及
根据每个语料句子原有的断句标识和深度学习模型输出的该语料句子对应的断句标注,调整深度学习模型的参数,建立断句模型。
第二方面,本申请实施例提供的一种断句装置,包括:
截取模块,用于在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;
断句模块,用于将本次截取的字符序列输入到预先训练的断句模型中进行断句;
处理模块,用于若断句后的字符序列中包含断句标识,输出所述断句标识之前的字符,将所述断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为所述断句模型的下次输入。
在一种可能的实施方式下,所述第二长度与所述第一长度相同,或者所述第二长度与所述断句标识之后的字符的长度之和为所述第一长度。
在一种可能的实施方式下,所述处理模块具体用于:
若确定所述断句后的字符序列中存在至少两个断句标识,则按照所述至少两个断句标识的排列顺序,逐次输出每个断句标识之前的字符;或者
若确定所述断句后的字符序列中存在至少两个断句标识,则将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
在一种可能的实施方式下,若断句后的字符序列中未包含断句标识,所述处理模块还用于:
将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入。
在一种可能的实施方式下,所述第三长度与所述第一长度相同。
在一种可能的实施方式下,所述处理模块还用于:
在将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入之后,将第一长度与第三长度之和作为更新后的第一长度,并基于更新后的第一长度进行下次断句处理。
在一种可能的实施方式下,还包括训练模块,用于根据以下步骤训练断句模型:
对获取的每个语料句子进行分词处理,确定该语料句子包含的词语;
确定该语料句子包含的词语中的稀有词语,利用子词切分算法对所述稀有词语进行切分处理;
将分词处理和切分处理后得到的词语形成的序列,输入到深度学习模型中进行断句标注;以及
根据每个语料句子原有的断句标识和所述深度学习模型输出的该语料句子对应的断句标注,调整所述深度学习模型的参数,建立断句模型。
第三方面,本申请实施例提供的一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述断句方法。
第四方面,本申请实施例提供的一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述断句方法。
另外,第二方面至第四方面中任一种设计方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的将断句方法应用于同声传译时的场景示意图;
图2为本申请实施例提供的建立断句模型的方法流程图;
图3为本申请实施例提供的断句方法的流程图;
图4为本申请实施例提供的用于实现断句方法的电子设备的硬件结构示意图;
图5为本申请实施例提供的断句装置的结构示意图。
具体实施方式
为了在语音识别后,输出语义完整的句子,提高用户体验,本申请实施例提供了一种断句方法及装置。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于理解本申请,本申请涉及的技术术语中:
断句标识,用于对句子进行分割的符号,可以不是标点符号,如“|”“/”,也可是标点符号,如“,”“。”“?”。
非断句标识,代表不对句子进行断句的符号,可根据实际需求指定,比如,空格,制表符等。
词语,代表一定语义的短语,一个词语包含的字符个数不固定,可以为一个、两个、三个或者更多,比如,“我”、“想要”、“去上学”、“I”、“want to”、“go to school”都是单个的词语。
目前,虽然语音识别技术已经比较成熟,但有这样一种需求:用户说的话需要实时的识别并显示,如何在用户说了一长段话之后,对识别出的字符序列进行准确而逻辑清晰的断句则是一个艰难的问题。
比如,在同声传译中,发言者可能会连续不断地讲话,如何将发言者讲的话逻辑清晰地显示在用户面前的显示设备上就是一个比较难的问题。
参见图1,图1示出了本申请实施例提供的将断句方法应用于同声传译时的场景示意图,包括语音采集设备、服务器和多个显示设备。
具体实施时,语音采集设备可周期性采集发言者的语音信号发送给服务器,服务器在接收到语音信号时,可对语音信号进行识别,得到语音信号对应的字符序列,并将这些字符序列放入缓存中,进一步地,从缓存字符序列的起始位置开始截取出第一长度的字符序列,并将本次截取的字符序列输入到预先训练的断句模型中进行断句处理,若确定断句后的字符序列中包含断句标识,则可将每个断句标识之前的字符作为一个句子发送给显示设备,由显示设备向用户逐句展示发言者的讲话内容,并且,为避免丢失字符,还可将断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列进行拼接作为断句模型的下次输入,其中,第一长度可以是截取的字符序列的字符长度,也可以是截取的字符序列对应的语音信号的时长。
上述过程中,服务器对缓存中利用语音识别技术识别出的字符序列并不是实时地向显示设备发送,而是将从这些字符序列的起始位置开始截取的第一长度的字符序列输入到断句模型中进行断句处理,确定断句模型输出的字符序列中包含断句标识时,再向显示设备发送每个断句标识之前的字符序列,这样,可保证服务器发送给显示设备的字符序列均可组成逻辑清晰的句子,用户在显示设备上看到的不再是断续的语义不连贯、或不完整的句子,句子的阅读性和理解性都比较好,也不会丢失字符,因此,用户体验较好。
需要说明的是,本申请的应用场景并不是只有同声传译,所有需要对语音数据进行断句的场景都适用。
下面先对训练断句模型的过程进行介绍。
在一种可能的实施方式下,可以按照图2所示的流程训练断句模型,该流程包括:
S201:获取预设数量的样本句子,其中,样本句子的句末带有断句标识。
这里,样本句子之间可以相互独立,也可以具有关联关系。
S202:将部分或全部样本句子进行拼接,对每个拼接后的样本句子进行分割,并将分割后的样本句子确定为语料句子。
针对需要实时识别语音数据的情况,有可能本次识别出的字符序列有一部分和上次别出的字符序列才能构成一个句子,此时,如果对这些字符序列进行断句,断句标识很可能会出现在字符序列的中间位置,为了能很好地应对这种情况,我们希望用于建立断句模型的语料句子多样化,句子中断句标识也不要全部出现在句末。
为此,在获取预设数量的句末带有断句标识的样本句子之后,可以将部分或全部样本句子进行拼接,并对每个拼接后的样本句子进行分割,比如,按照设定步长进行分割或者随机进行分割,进而将分割后的样本句子作为用于建立断句模型的语料句子,这样,可降低断句标识出现在句末的概率,提升断句标识出现在句中的概率,更加贴合上述场景,后续,将建立的深度学习模型运用到上述场景时,深度学习模型的断句准确率也会更高。
S203:对每个语料句子进行分词处理,确定该语料句子包含的词语,若确定该语料句子包含的词语中有稀有词语,则利用子词切分算法对每个稀有词语再次进行分词处理。
其中,稀有词语是指语料句子中出现频率低的词语,例如出现次数少于设定次数的词语。
在具体实施时,对每个语料句子进行分词处理的工具如jieba、SnowNLP、THULAC、NLPIR等,在确定出每个语料句子中包含的词语之后,这些工具还可以给出哪些词语是稀有词语的信息,若确定该语料句子包含的词语中有稀有词语,还可利用子词切分算法对每个稀有词语再次进行切分处理,如利用双字节编码(Byte Pair Encoding,BPE)算法对每个稀有词语再次进行分词处理,该处理也可叫做BPE处理,这样,可提高稀有词语对语料句子的影响,便于充分理解语料句子的语义,进而提高对语料句子进行断句的准确性。
S204:将每个语料句子在分词处理和切分处理后得到的词语形成的词语序列输入到深度学习模型中进行断句标注。
这里,每个语料句子在进行分词处理和切分处理后都会得到多个词语,该语料句子的词语序列可按照每个词语在该语料句子中的位置形成。
比如,语料句子为“我想要去上学”,且该语料句子在进行分词处理和切分处理后得到的词语为“我”、“上学”、“去”、“想要”,那么根据每个词语在该语料句子中的出现位置最终形成的词语序列为{我、想要、去、上学}。
在具体实施时,将每个语料句子形成的词语序列输入到深度学习模型中之后,对词语序列中的每个词语,深度学习模型可分析该词语在词语序列中的上下文信息,进而根据该词语的上下文信息确定对该词语标注断句标识的第一概率和标注非断句标识的第二概率,进而取第一概率和第二概率中值最大的标识对该词语进行标注,比如,将概率较大的标识添加在该词语的后面,标注完所有的词语后,即可输出标注后的语料句子。
可选地,对语料句子进行标注的断句标识的种类可以只有一种,如“/”,也可以有多种,如同时使用“,”、“。”和“?”,其中,当使用的为一种断句标识,如“/”时,利用断句模型可确定出字符序列的断句位置;当使用的为多种断句标识,如“,”、“。”、“?”时,利用断句模型不仅可确定出字符序列的断句位置,而且可以确定出在该断句位置应该添加的断句标识的种类。
下面仅以使用一种断句标识为例对上述过程进行介绍。
比如,某语料句子形成的词语序列为:{词语1、词语2、词语3、词语4、词语5},且在词语1后面加“□”的概率为0.7、加“/”的概率为0.3;在词语2后面加“□”的概率为0.4、加“/”的概率为0.6;在词语3后面加“□”的概率为0.6、加“/”的概率为0.4;在词语4后面加“□”的概率为0.6、加“/”的概率为0.4;在词语5后面加“□”的概率为0.6、加“/”的概率为0.4,则对该语料句子的标注为:词语1□词语2/词语3□词语4□词语5□,之后,可输出标注处理后的语料句子,实际处理时,若词语序列中包含有稀有词语,输出的语料句子中还会包含有BPE标识。
在具体实施时,为了使对语料句子中每个词语的标注更加准确,在根据该词语的上下文信息确定对该词语标注断句标识的第一概率和对该词语标注非断句标识的第二概率之后,还可根据词语序列中已标注的各词语的标注情况对第一概率和第二概率进行调整,之后,取调整后的第一概率和调整后的第二概率中值最大的标识对该词语进行标注。
比如,某语料句子形成的词语序列为:{词语1、词语2、词语3、词语4、词语5},其中,已在词语1后面添加了“□”,在词语2后面添加了“/”,以词语3为例,在确定对词语3标注断句标识和标注非断句标识的概率之后,可分析在词语序列中词语1和词语2已添加的标注信息:“□”和“/”,在词语3前面的词语2加了断句标识,那么,在词语3后面再加断句标识的可能就不会太大,即在词语3后面添加“□”的概率会比较高,此时,若已确定的对词语3标注断句标识“□”的概率略小如0.6,则可适当增大,同时对已确定的对词语3标注断句标识“/”的概率适当减小,这样,结合词语序列中已标注的各词语的标注情况,可使在词语序列中整体添加的断句标识更加符合实际情况,以期进一步提高断句的准确性。
S205:根据每个语料句子原有的断句标识和深度学习模型输出的该语料句子对应的断句标注,调整深度学习模型的参数。
在具体实施时,针对每个语料句子,可以对比该语料句子原有的断句标识的位置和深度学习模型输出的该语料句子对应的断句标注的位置是否相同,若不相同,则可调整深度学习模型的参数以使调整后的深度学习模型输出的该语料句子对应的断句标注的位置与该语料句子原有的断句标识的位置相同。
比如,可根据该语料句子原有的断句标识的位置和深度学习模型输出的该语料句子对应的断句标注的位置,计算用于确定两者偏差的损失函数,进而利用梯度下降算法对深度学习模型的参数进行调整以期减小损失函数,直至调整后的深度学习模型输出的该语料句子对应的断句标注的位置与该语料句子原有的断句标识的位置相同时,停止调整。
S206:利用测试句子对调整后的深度学习模型进行测试,根据测试结果确定深度学习模型的标注准确率。
其中,测试句子是已知断句标识位置的句子。
S207:判断标注准确率是否小于预设的准确率,若否,则进入S208:若是,则进入S209。
S208:根据至少一个新的语料句子对调整后的深度学习模型进行训练,将训练后的深度学习模型作为新调整后的深度学习模型,并返回S206。
其中,新的语料句子是新增加的语料句子,不同于之前在训练断句模型时使用的语料句子。
S209:将调整后的深度学习模型作为建立的断句模型。
S210:利用建立的断句模型对输入的字符序列进行断句处理,输出断句处理后的字符序列。
其中,输入的字符序列是对采集到的语音信号进行语音识别处理后得到的。
具体地,可对输入的字符序列进行分词处理,若确定分词处理后的词语中包含有稀有词语,仍利用子词切分算法对每个稀有词语再次进行切分处理,然后,将分词处理和切分处理后得到的词语形成的词语序列输入到深度学习模型中进行断句标注,深度学习模型输出的即为断句处理后的字符序列。
在具体实施时,深度学习模型输出的字符序列中会带有多种标注信息,如断句标识、非断句标识,若存在稀有词语,还会包含BPE处理的标注信息,所以,在得到深度学习模型输出的断句处理后的字符序列之后,可先滤除字符序列中的非断句标识,之后,再对字符序列再进行反分词、反BPE处理,最后,再向用户展示断句处理后的字符序列,因为整个处理过程用户是无感知的,用户最终看到的是清晰、完整,没有处理痕迹的句子,以期进一步提升用户体验。本申请实施例提供的断句模型,对语料句子中每个词语,是根据该词语的上下文信息确定对该词语标注断句标识和标注非断句标识的概率,且在该词语进行标注之前,还可根据语料句子对应的词语序列中已标注的各词语的标注情况来调整对该词语标注断句标识和标注非断句标识的概率,进而取概率最大的标识对该词语进行标注,断句方式非常符合自然语义的特点,因此,断句方式更加合理。
并且,本申请实施例中,在建立断句模型时使用的样本句子为哪种语言即可完成对哪种语言的断句,比如,若样本句子为英文则可对英文进行断句,若样本句子为中文则可对中文进行断句,通用性也比较好。
另外,本申请实施例还提供一种深度学习模型的网络结构:embedding->bilstm->softmax->crf,箭头表示网络结构的顺序,其中,embedding层用于对语料句子所形成的词语序列中每个词语的语义进行编码;bilstm层用于根据词语序列中每个词语前后若干词语的语义编码分析该词语的上下文语义;softmax层用于根据每个词语的上下文语义确定对该词语标注断句标识和标注非断句标识的概率;crf层用于根据词语序列中的已标的各词语的标注情况对当前词语标注断句标识和标注非断句标识的概率进行调整,并取调整后的断句标识和非断句标识中概率较大的标识对该词语进行标注,之后,输出最终的断句标注结果。
在建立断句模型以后,即可利用断句模型对字符序列进行断句,下面结合具体的实施例对使用断句模型的过程进行介绍。
如图3所示,为本申请实施例提供的断句方法的流程图,包括以下步骤:
S301:在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列作为待处理字符序列。
其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的,第一长度可以是指截取出的字符序列的字符长度,也可以是指截取的字符序列对应的语音信号的时长。
在具体实施时,在得到语音信号对应的字符序列之后,即可对这些字符序列进行分词处理,确定字符序列中包含的词语,若确定字符序列中包含有稀有词语,再对每个稀有词语进行BPE处理。
S302:将待处理字符序列输入到预先训练的断句模型中进行断句处理。
S303:判断断句后的字符序列中是否包含断句标识,若是,则进入S304;否则,进入S307。
S304:输出断句标识之前的字符。
在具体实施时,可截取断句后的字符序列中最后一个断句标识之前的字符序列,之后,滤除截取的字符序列中的非断句标识,并进行反分词、反BPE处理。
进一步地,对进行反分词、反BPE处理后得到的字符序列,若确定该字符序列中仅包含一个断句标识,则可将断句标识之前的字符作为一个句子输出;若确定该字符序列中包含至少两个断句标识,则可按照每个断句标识的排列顺序,逐次输出每个断句标识之前的字符,或者,将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
比如,断句后的字符序列为“你好,我是来自北京的XX,今年XX岁。欢迎大家到北京玩!”,那么,一种输出方式为4个断句标识逐次输出4个句子:“你好”、“我是来自北京的XX”、“今年XX岁”、“欢迎大家到北京玩”;另一种输出方式为4个断句标识一次输出全部的句子:“你好,我是来自北京的XX,今年XX岁。欢迎大家到北京玩!”,此时,为了明确断句位置,起到辅助阅读的作用,输出的句子中是包含断句标识的。
在具体实施时,在输出每个句子之前,还可根据设定的目标语言对该句子进行翻译,进而输出该句子的译文,这样,若存在多个显示设备,则可为每个显示设备设置一种目标语言,这样,就可将发言者说的话自动翻译成多种语言,分别发送给不同的显示设备,从而很好地实现跨语言的即时通信。
S305:判断断句后的字符序列中最后一个断句标识之后是否还存在字符序列,若是,则进入S306;否则,返回S301。
S306:将最后一个断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接,将拼接后的字符序列作为待处理字符序列,返回S302。
在具体实施时,若想要使每次截取的字符序列的长度相同,则可设置第二长度与第一长度相同;若想要使每次输入到断句模型中的字符序列的长度相同,则可设置第二长度与断句标识之后的字符的长度之和为第一长度。
S307:将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为待处理字符序列,返回S302。
其中,第三长度与第一长度相同。
在具体实施时,当断句后的字符序列中不包含断句标识时,下次再截取字符序列时仍可使用与本次相同的第一长度,另外,若想要减少断句后的字符序列中不包含断句标识的情况,提高整体断句效率,也可以将第一长度更新为第一长度与第三长度之和,这样,下次再截取的字符序列的长度就会增长,同时,为了防止第一长度过大、影响断句速度,还可为第一长度设置上限,当第一长度超过上限时,即不再更新第一长度。
需要说明的是,上述S306中“最后一个断句标识之后的字符”和S307中“本次截取的字符序列”均已进行过分词处理、BPE处理,可称之为预处理过的字符序列,在将预处理过的字符序列与新截取字符序列进行拼接时,可先对新截取字符序列进行分词处理、BPE处理,之后,再将新截取字符序列拼接在预处理过的字符序列的后面,这样,可避免对同一字符序列反复地进行预处理,并且,可提高断句速度,减小句子的输出时延。
此外,上述过程中,S304和S305之间没有严格的先后顺序关系。
本领域技术人员应当明白,上面仅是给出一种利用深度学习模型建立断句模型的具体实施例,并不是唯一方法,并且,利用其它方法建立的断句模型,如利用基本的神经网络(非深度学习神经网络)模型建立的断句模型,也可作为本申请实施例中的断句模型。
参见图4所示,为本申请实施例提供的一种电子设备的结构示意图,该电子设备包括收发器401以及处理器402等物理器件,其中,处理器402可以是一个中央处理单元(central processing unit,CPU)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器401用于电子设备和其他设备进行数据收发。
该电子设备还可以包括存储器403用于存储处理器402执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器403可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器403也可以是非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器403是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器403可以是上述存储器的组合。
本申请实施例中不限定上述处理器402、存储器403以及收发器401之间的具体连接介质。本申请实施例在图4中仅以存储器403、处理器402以及收发器401之间通过总线404连接为例进行说明,总线在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器402可以是专用硬件或运行软件的处理器,当处理器402可以运行软件时,处理器402读取存储器403存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的断句方法。
当本申请实施例中提供的方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。具体的,参见图5所示,为本申请实施例提供的断句装置的结构示意图,包括截取模块501、断句模块502、处理模块503。
截取模块501,用于在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;
断句模块502,用于将本次截取的字符序列输入到预先训练的断句模型中进行断句;
处理模块503,用于若断句后的字符序列中包含断句标识,输出所述断句标识之前的字符,将所述断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为所述断句模型的下次输入。
在一种可能的实施方式下,所述第二长度与所述第一长度相同,或者所述第二长度与所述断句标识之后的字符的长度之和为所述第一长度。
在一种可能的实施方式下,所述处理模块503具体用于:
若确定所述断句后的字符序列中存在至少两个断句标识,则按照所述至少两个断句标识的排列顺序,逐次输出每个断句标识之前的字符;或者
若确定所述断句后的字符序列中存在至少两个断句标识,则将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
在一种可能的实施方式下,若断句后的字符序列中未包含断句标识,所述处理模块503还用于:
将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入。
在一种可能的实施方式下,所述第三长度与所述第一长度相同。
在一种可能的实施方式下,所述处理模块503还用于:
在将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入之后,将第一长度与第三长度之和作为更新后的第一长度,并基于更新后的第一长度进行下次断句处理。
在一种可能的实施方式下,还包括,训练模块504,用于根据以下步骤训练所述断句模型:
对获取的每个语料句子进行分词处理,确定该语料句子包含的词语;
确定该语料句子包含的词语中的稀有词语,利用子词切分算法对所述稀有词语进行切分处理;
将分词处理和切分处理后得到的词语形成的序列,输入到深度学习模型中进行断句标注;以及
根据每个语料句子原有的断句标识和所述深度学习模型输出的该语料句子对应的断句标注,调整所述深度学习模型的参数,建立断句模型。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的断句方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的断句方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于语音处理的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种断句方法,其特征在于,包括:
在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;
将本次截取的字符序列输入到预先训练的断句模型中进行断句;
若断句后的字符序列中包含断句标识,输出所述断句标识之前的字符,将所述断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为所述断句模型的下次输入。
2.如权利要求1所述的方法,其特征在于,所述第二长度与所述第一长度相同,或者所述第二长度与所述断句标识之后的字符的长度之和为所述第一长度。
3.如权利要求1所述的方法,其特征在于,若断句后的字符序列中存在至少两个断句标识,则输出所述断句标识之前的字符,包括:
若确定所述断句后的字符序列中存在至少两个断句标识,则按照所述至少两个断句标识的排列顺序,逐次输出每个断句标识之前的字符;或者
若确定所述断句后的字符序列中存在至少两个断句标识,则将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
4.如权利要求1所述的方法,其特征在于,若断句后的字符序列中未包含断句标识,所述方法还包括:
将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入。
5.如权利要求4所述的方法,其特征在于,所述第三长度与所述第一长度相同。
6.如权利要求4所述的方法,其特征在于,将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入之后,所述方法还包括:
将所述第一长度与所述第三长度之和作为更新后的第一长度,并基于所述更新后的第一长度进行下次断句处理。
7.如权利要求1所述的方法,其特征在于,根据以下步骤训练所述断句模型:
对获取的每个语料句子进行分词处理,确定该语料句子包含的词语;
确定该语料句子包含的词语中的稀有词语,利用子词切分算法对所述稀有词语进行切分处理;
将分词处理和切分处理后得到的词语形成的序列,输入到深度学习模型中进行断句标注;以及
根据每个语料句子原有的断句标识和所述深度学习模型输出的该语料句子对应的断句标注,调整所述深度学习模型的参数,建立断句模型。
8.一种断句装置,其特征在于,包括:
截取模块,用于在缓存的字符序列中,从起始位置开始截取出第一长度的字符序列,其中,缓存的字符序列是对采集到的语音信号进行语音识别后得到的;
断句模块,用于将本次截取的字符序列输入到预先训练的断句模型中进行断句;
处理模块,用于若断句后的字符序列中包含断句标识,输出所述断句标识之前的字符,将所述断句标识之后的字符与下次从缓存中截取出的第二长度的字符序列拼接后,作为所述断句模型的下次输入。
9.如权利要求8所述的装置,其特征在于,所述第二长度与所述第一长度相同,或者所述第二长度与所述断句标识之后的字符的长度之和为所述第一长度。
10.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
若确定所述断句后的字符序列中存在至少两个断句标识,则按照所述至少两个断句标识的排列顺序,逐次输出每个断句标识之前的字符;或者
若确定所述断句后的字符序列中存在至少两个断句标识,则将最后一个断句标识之前的所有字符作为一个句子输出,且所输出的句子中包含断句标识。
11.如权利要求8所述的装置,若断句后的字符序列中未包含断句标识,所述处理模块还用于:
将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入。
12.如权利要求11所述的装置,其特征在于,所述第三长度与所述第一长度相同。
13.如权利要求11所述的装置,其特征在于,所述处理模块还用于:
在将本次截取的字符序列与下次从缓存中截取出的第三长度的字符序列拼接后,作为所述断句模型的下次输入之后,将所述第一长度与所述第三长度之和作为更新后的第一长度,并基于所述更新后的第一长度进行下次断句处理。
14.如权利要求8所述的装置,其特征在于,还包括训练模块,用于根据以下步骤训练所述断句模型:
对获取的每个语料句子进行分词处理,确定该语料句子包含的词语;
确定该语料句子包含的词语中的稀有词语,利用子词切分算法对所述稀有词语进行切分处理;
将分词处理和切分处理后得到的词语形成的序列,输入到深度学习模型中进行断句标注;以及
根据每个语料句子原有的断句标识和所述深度学习模型输出的该语料句子对应的断句标注,调整所述深度学习模型的参数,建立断句模型。
15.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任一权利要求所述的方法。
16.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至7任一权利要求所述的方法。
CN201811320543.6A 2018-11-07 2018-11-07 一种断句方法及装置 Active CN111160003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811320543.6A CN111160003B (zh) 2018-11-07 2018-11-07 一种断句方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811320543.6A CN111160003B (zh) 2018-11-07 2018-11-07 一种断句方法及装置

Publications (2)

Publication Number Publication Date
CN111160003A CN111160003A (zh) 2020-05-15
CN111160003B true CN111160003B (zh) 2023-12-08

Family

ID=70555008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811320543.6A Active CN111160003B (zh) 2018-11-07 2018-11-07 一种断句方法及装置

Country Status (1)

Country Link
CN (1) CN111160003B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737991B (zh) * 2020-07-01 2023-12-12 携程计算机技术(上海)有限公司 文本断句位置的识别方法及系统、电子设备及存储介质
CN112002328B (zh) * 2020-08-10 2024-04-16 中央广播电视总台 一种字幕生成方法、装置及计算机存储介质、电子设备
CN112347757A (zh) * 2020-10-12 2021-02-09 四川语言桥信息技术有限公司 平行语料对齐方法、装置、设备和存储介质
CN114420102B (zh) * 2022-01-04 2022-10-14 广州小鹏汽车科技有限公司 语音断句方法、装置、电子设备及存储介质
CN115579009B (zh) * 2022-12-06 2023-04-07 广州小鹏汽车科技有限公司 语音交互方法、服务器及计算机可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62159280A (ja) * 1986-01-07 1987-07-15 Toshiba Corp 文章入力装置
JP2000259176A (ja) * 1999-03-08 2000-09-22 Nippon Hoso Kyokai <Nhk> 音声認識装置およびその記録媒体
JP2003108181A (ja) * 2001-09-27 2003-04-11 Matsushita Electric Ind Co Ltd 読み上げテキスト整形方法、装置、および媒体
CN102929882A (zh) * 2011-08-09 2013-02-13 阿里巴巴集团控股有限公司 一种网页标题的抽取方法与装置
CN104143331A (zh) * 2013-05-24 2014-11-12 腾讯科技(深圳)有限公司 一种添加标点的方法和系统
CN107168955A (zh) * 2017-05-23 2017-09-15 南京大学 利用基于词上下文的字嵌入与神经网络的中文分词方法
CN107679033A (zh) * 2017-09-11 2018-02-09 百度在线网络技术(北京)有限公司 文本断句位置识别方法和装置
CN107766325A (zh) * 2017-09-27 2018-03-06 百度在线网络技术(北京)有限公司 文本拼接方法及其装置
CN108549628A (zh) * 2018-03-16 2018-09-18 北京云知声信息技术有限公司 流式自然语言信息的断句装置及方法
CN108564953A (zh) * 2018-04-20 2018-09-21 科大讯飞股份有限公司 一种语音识别文本的标点处理方法及装置
CN108628834A (zh) * 2018-05-14 2018-10-09 国家计算机网络与信息安全管理中心 一种基于句法依存关系的词语表示学习方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003017252A1 (de) * 2001-08-13 2003-02-27 Knittel, Jochen Verfahren und vorrichtung zum erkennen einer phonetischen lautfolge oder zeichenfolge
US7236923B1 (en) * 2002-08-07 2007-06-26 Itt Manufacturing Enterprises, Inc. Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text
KR102420518B1 (ko) * 2015-09-09 2022-07-13 삼성전자주식회사 자연어 처리 시스템, 자연어 처리 장치, 자연어 처리 방법 및 컴퓨터 판독가능 기록매체

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62159280A (ja) * 1986-01-07 1987-07-15 Toshiba Corp 文章入力装置
JP2000259176A (ja) * 1999-03-08 2000-09-22 Nippon Hoso Kyokai <Nhk> 音声認識装置およびその記録媒体
JP2003108181A (ja) * 2001-09-27 2003-04-11 Matsushita Electric Ind Co Ltd 読み上げテキスト整形方法、装置、および媒体
CN102929882A (zh) * 2011-08-09 2013-02-13 阿里巴巴集团控股有限公司 一种网页标题的抽取方法与装置
CN104143331A (zh) * 2013-05-24 2014-11-12 腾讯科技(深圳)有限公司 一种添加标点的方法和系统
CN107168955A (zh) * 2017-05-23 2017-09-15 南京大学 利用基于词上下文的字嵌入与神经网络的中文分词方法
CN107679033A (zh) * 2017-09-11 2018-02-09 百度在线网络技术(北京)有限公司 文本断句位置识别方法和装置
CN107766325A (zh) * 2017-09-27 2018-03-06 百度在线网络技术(北京)有限公司 文本拼接方法及其装置
CN108549628A (zh) * 2018-03-16 2018-09-18 北京云知声信息技术有限公司 流式自然语言信息的断句装置及方法
CN108564953A (zh) * 2018-04-20 2018-09-21 科大讯飞股份有限公司 一种语音识别文本的标点处理方法及装置
CN108628834A (zh) * 2018-05-14 2018-10-09 国家计算机网络与信息安全管理中心 一种基于句法依存关系的词语表示学习方法

Also Published As

Publication number Publication date
CN111160003A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111160003B (zh) 一种断句方法及装置
US11132518B2 (en) Method and apparatus for translating speech
CN111160004B (zh) 一种断句模型的建立方法及装置
US10755048B2 (en) Artificial intelligence based method and apparatus for segmenting sentence
CN110276023B (zh) Poi变迁事件发现方法、装置、计算设备和介质
CN111783450B (zh) 语料文本中的短语提取方法、装置、存储介质及电子设备
CN111027291A (zh) 文本中标点符号添加、模型训练方法、装置及电子设备
CN114492426B (zh) 子词切分方法、模型训练方法、装置和电子设备
CN112188311A (zh) 用于确定新闻的视频素材的方法和装置
CN111199151A (zh) 数据处理方法、及数据处理装置
CN115858776B (zh) 一种变体文本分类识别方法、系统、存储介质和电子设备
CN111354354B (zh) 一种基于语义识别的训练方法、训练装置及终端设备
CN114141236B (zh) 语言模型更新方法、装置、电子设备及存储介质
CN106959945B (zh) 基于人工智能的为新闻生成短标题的方法和装置
CN115620726A (zh) 语音文本生成方法、语音文本生成模型的训练方法、装置
CN114398952A (zh) 训练文本生成方法、装置、电子设备及存储介质
CN114647727A (zh) 应用于实体信息识别的模型训练方法、装置和设备
US10002450B2 (en) Analyzing a document that includes a text-based visual representation
CN115312032A (zh) 语音识别训练集的生成方法及装置
CN111695350B (zh) 一种文本的分词方法及分词装置
CN112509570A (zh) 语音信号处理方法、装置、电子设备及存储介质
CN117174084B (zh) 一种训练数据构建方法及装置、电子设备和存储介质
CN113722496B (zh) 一种三元组抽取方法、装置、可读存储介质及电子设备
CN109214005A (zh) 一种基于中文分词的线索提取方法及系统
CN113724738B (zh) 语音处理方法、决策树模型训练方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant