python - 如何通过NLTK中的标签将一个段落拆分成句子

标签 python regex nltk

现在我在标记后有一个段落,我想在 NLTK 中将其分成单独的句子。

我想到的第一个想法是使用 <PU> 来做到这一点标签,例如 , .标点符号之类的。所以正则表达式如下:

    grammer = r"""
    NP:
        {<.*>+}
        }<PU>{
    """

但是,我发现我缺少其他标点符号,例如 ( , ) , { , } ...

所以上面的内容不能很好地适用于下面的句子,因为标点符号 ( )用于分割成句子。

客户#NN 表示#VV 销售人员#NN 挺#AD 热情#VA 的#SP ,#PU 而且#AD 经销#VV 店里#NN 的#DEC 员工#NN 臧#NR 伟#NR (#PU 音#NN 同#CC )#PU 特别#JJ 热心#NN 。

如何仅使用,分割句子和.是中文吗?

最佳答案

您应该能够使用普通的 Python 正则表达式来分割您的段落:

import re
pat = re.compile('。|,')
paragraph = '客户#NN 表示#VV 销售人员#NN 挺#AD 热情#VA 的#SP ,#PU 而且#AD 经销#VV 店里#NN 的#DEC 员工#NN 臧#NR 伟#NR (#PU 音#NN 同#CC )#PU 特别#JJ 热心#NN'

pat.split(paragraph)
['客户#NN 表示#VV 销售人员#NN 挺#AD 热情#VA 的#SP ',
 '#PU 而且#AD 经销#VV 店里#NN 的#DEC 员工#NN 臧#NR 伟#NR (#PU 音#NN 同#CC )#PU 特别#JJ 热心#NN']

关于python - 如何通过NLTK中的标签将一个段落拆分成句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470301/

相关文章:

python - 获取多个日期时间对的日期范围

python - 如何在 RESTful Flask 应用程序中将 Pandas DataFrame 序列化/反序列化为 ProtoBuf/Gzip?

python - ThreadPoolExecutor + Requests == 死锁?

python - 如何在给定引理和标记的情况下反转词形还原过程?

python - 使用 Numpy(坐标变换)计算长表达式?

regex - "Untranslatable"正则表达式语法

python - 如何使用python从以列中的数字开头的字符串中提取数字

regex - 使用正则表达式否定前瞻排除确切的字符串

python - NLTK CCG 中的 Lambda 演算表示

python - 使用 spacy 或 nltk 从段落中提取文本