Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript或Python:每句话后换行_Javascript_Python_Lexical_Sentence - Fatal编程技术网

Javascript或Python:每句话后换行

Javascript或Python:每句话后换行,javascript,python,lexical,sentence,Javascript,Python,Lexical,Sentence,我很好奇是否有一个python或javascript库来标记一个句子串中的句子,并在每个句子处添加新行 即: 到 您正在寻找一个自然语言库 对于Python,有一种新的方法(NLTK)。例如,您可以看一看 PunktSentenceTokenizer通过使用无监督算法为缩写词、搭配和开始句子的词建立模型,将文本划分为一系列句子。在使用之前,它必须接受塔雷特语言中大量纯文本的训练。Kiss&Strunk(2006)中描述了该标记器的算法: Kiss,Tibor和Strunk,Jan(2006):无

我很好奇是否有一个python或javascript库来标记一个句子串中的句子,并在每个句子处添加新行

即:


您正在寻找一个自然语言库

对于Python,有一种新的方法(NLTK)。例如,您可以看一看

PunktSentenceTokenizer通过使用无监督算法为缩写词、搭配和开始句子的词建立模型,将文本划分为一系列句子。在使用之前,它必须接受塔雷特语言中大量纯文本的训练。Kiss&Strunk(2006)中描述了该标记器的算法:

Kiss,Tibor和Strunk,Jan(2006):无监督的多语言句子 边界检测。计算语言学32:485-525

NLTK数据包包括一个经过预先培训的英语Punkt标记器


您正在寻找一个自然语言库

对于Python,有一种新的方法(NLTK)。例如,您可以看一看

PunktSentenceTokenizer通过使用无监督算法为缩写词、搭配和开始句子的词建立模型,将文本划分为一系列句子。在使用之前,它必须接受塔雷特语言中大量纯文本的训练。Kiss&Strunk(2006)中描述了该标记器的算法:

Kiss,Tibor和Strunk,Jan(2006):无监督的多语言句子 边界检测。计算语言学32:485-525

NLTK数据包包括一个经过预先培训的英语Punkt标记器

在Python中,使用str.replace():

此外,您还需要对Python中的.

感兴趣,请使用str.replace():


另外,如果您只是在寻找能够实现这一点的javascript,您可以这样做:

var str = "Lorem ipsum 4.00 dolor sit amet, consectetur adipiscing elit. Vestibulum aliquet leo in urna hendrerit placerat. Donec adipiscing dignissim adipiscing. Duis adipiscing mollis cursus. Etiam fringilla elit nec enim sagittis a auctor nisi gravida. Nunc etc.... sollicitudin, leo sit amet consequat pharetra, mi orci vestibulum mi, a suscipit odio tellus tincidunt erat. Suspendisse a consequat turpis. Morbi eget ante leo, a dignissim mi."

str = str.replace(/(\S\.)\s*([A-Z])/g, "$1\n$2");
您可以看到它在这里工作:


这种特殊的算法只在非空格后跟句点,空格后跟大写字母的情况下添加换行符。因此,它不会受到诸如
$4.00
等实际上不会结束行的东西的影响。它在行与行之间的空白量方面也很灵活。

如果您只是在寻找能够做到这一点的javascript,您可以这样做:

var str = "Lorem ipsum 4.00 dolor sit amet, consectetur adipiscing elit. Vestibulum aliquet leo in urna hendrerit placerat. Donec adipiscing dignissim adipiscing. Duis adipiscing mollis cursus. Etiam fringilla elit nec enim sagittis a auctor nisi gravida. Nunc etc.... sollicitudin, leo sit amet consequat pharetra, mi orci vestibulum mi, a suscipit odio tellus tincidunt erat. Suspendisse a consequat turpis. Morbi eget ante leo, a dignissim mi."

str = str.replace(/(\S\.)\s*([A-Z])/g, "$1\n$2");
您可以看到它在这里工作:


这种特殊的算法只在非空格后跟句点,空格后跟大写字母的情况下添加换行符。因此,它不会受到诸如
$4.00
等实际上不会结束行的东西的影响。它在行与行之间的空格数量上也很灵活。

它必须支持哪些语言?它如何知道在“Duis adipising mollis cursus.”等之后不包含换行符?它必须支持哪些语言?它如何知道在“Duis adipising mollis cursus.”等之后不包含换行符?请注意,虽然这对“句子”有效OP发布时,如果句子以感叹号或问号结尾,则OP将失败;如果句子包含以点结尾的单词(例如,
Mr.
),则OP也将失败。请注意,虽然这适用于OP发布的“句子”,但如果句子以感叹号或问号结尾,OP将失败,如果句子包含以点结尾的单词(例如,
Mr.
),也会失败。
>>> s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum aliquet leo in urna hendrerit placerat. Donec adipiscing dignissim adipiscing. Duis adipiscing mollis cursus. Etiam fringilla elit nec enim sagittis a auctor nisi gravida. Nunc sollicitudin, leo sit amet consequat pharetra, mi orci vestibulum mi, a suscipit odio tellus tincidunt erat. Suspendisse a consequat turpis. Morbi eget ante leo, a dignissim mi."
>>> print s.replace('. ', '.\n')
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vestibulum aliquet leo in urna hendrerit placerat.
Donec adipiscing dignissim adipiscing.
Duis adipiscing mollis cursus.
Etiam fringilla elit nec enim sagittis a auctor nisi gravida.
Nunc sollicitudin, leo sit amet consequat pharetra, mi orci vestibulum mi, a suscipit odio tellus tincidunt erat.
Suspendisse a consequat turpis.
Morbi eget ante leo, a dignissim mi.
var str = "Lorem ipsum 4.00 dolor sit amet, consectetur adipiscing elit. Vestibulum aliquet leo in urna hendrerit placerat. Donec adipiscing dignissim adipiscing. Duis adipiscing mollis cursus. Etiam fringilla elit nec enim sagittis a auctor nisi gravida. Nunc etc.... sollicitudin, leo sit amet consequat pharetra, mi orci vestibulum mi, a suscipit odio tellus tincidunt erat. Suspendisse a consequat turpis. Morbi eget ante leo, a dignissim mi."

str = str.replace(/(\S\.)\s*([A-Z])/g, "$1\n$2");