Python程序在给定字符串中放置正确的标点符号

Python程序在给定字符串中放置正确的标点符号,python,text,nltk,text-mining,punctuation,Python,Text,Nltk,Text Mining,Punctuation,我想在一个有很多无标点句的段落中加上适当的标点符号 例如: 输入:嘿,你好吗?你今天能来吗 输出:嘿,你好吗?你今天能来吗 我只想把句子分开,把问题部分和陈述部分分开。基本上,我只需要在适当的地方放上“.”和“?” 是否有任何协议可以这样做。 如果您有任何建议,我们将不胜感激。这里有一个简单的算法,可以检查单词“hey”并在其后面添加逗号: def format(string): # get list split by spaces parsed_string = strin

我想在一个有很多无标点句的段落中加上适当的标点符号

例如:

  • 输入:嘿,你好吗?你今天能来吗
  • 输出:嘿,你好吗?你今天能来吗
我只想把句子分开,把问题部分和陈述部分分开。基本上,我只需要在适当的地方放上“.”和“?”

是否有任何协议可以这样做。
如果您有任何建议,我们将不胜感激。

这里有一个简单的算法,可以检查单词“hey”并在其后面添加逗号:

def format(string):
    # get list split by spaces
    parsed_string = string.split(' ')
    i = 0
    for word in parsed_string:
        # check if word is 'hey'
        if word == 'hey':
            # add a comma
            parsed_string[i] = 'hey,'
        i += 1
    return ' '.join(parsed_string)

sentence = 'hey how are you'
print(format(sentence))
输出:

hey, how are you

在研究社区中,在给定字符串中添加适当标点符号的任务称为“”。(顺便说一句,不知道为什么这个问题得到这么多反对票,标点符号修复是一个有效的研究领域)

用于标点恢复的Python程序:

  • #Pytorch,2017年,字符级别,无许可证
  • #Theano,2016,单词级,麻省理工学院许可证

您能告诉我们您尝试过什么吗?这是可能的,但您必须编写自己的算法才能做到。@ScottMcC我无法想出一个富有成效的算法。我只是尝试了使用POS标记的简单语法结构,但效果不佳results@BenBotvinick有什么建议吗?你的任务通常是不可能完成的。可能会提出一种适用于特定示例的算法,但不适用于任何可能的文本。原因很简单:有很多句子,如果你改变标点符号的位置,你会得到不同的结果。示例:到1号楼外面玩。出去玩吧!2.去出去玩!3.出去玩,出去!这是一个非常具体的解决方案。正如我在评论中所说,我需要一个通用算法,它在所有情况下都能工作。如果你有一个段落,删除了所有标点符号,你必须将点状符号放回适当的位置。我使用nltk和POS标记对段落进行标记,我创建了一个语法结构来猜测正确的标记,但可能有数百万种不同类型的句子。所以,我不能想出一个在所有情况下都能精确工作的算法