从段落中提取句子的 SQL 查询

Posted

技术标签:

【中文标题】从段落中提取句子的 SQL 查询【英文标题】:SQL query to extract sentences from a paragraph 【发布时间】:2015-11-26 17:50:02 【问题描述】:

我正在创建一个将生成 CSV 输出的 SQL 查询。我需要从数据库中的段落中提取句子,并将它们设置为 CSV 输出中的单独字段。

我的示例段落如下;

“令人惊叹的仿双上衣,袖子长度为 3/4。以波浪为特色 带纹理的模拟插入物,带有纯色对比外层织物。两个褶到 每个肩部都为这款百搭上衣增添了垂坠感。”

我需要分解它,以便我的 SQL 查询看起来像这样;

'令人惊艳的 3/4 袖长款仿双上衣' AS 'point1' '具有波浪纹理模拟插入物和普通对比外 面料' AS 'point2' '每个肩部有两条褶裥,为此增添了垂坠感 多功能顶'AS'point3'

以此类推,直到段落结束。该段中的所有句子都以句号结尾,因此我可以在“CASE”语句中使用它,但不确定如何使用。

希望能对此提供任何帮助。

谢谢。

【问题讨论】:

虽然可能,但这并不是 mysql 的真正任务 我同意@Strawberry 你应该考虑使用Apache OpenNLP 之类的NLP 工具,并训练一个合适的模型来使用SentenceDetector Tool。 Split comma delimited string --> FUNCTION db.CHARINDEX does not exist的可能重复 您的表格中是否会为每个段落单独记录,如果有,您是否知道每个段落中的最大句子数? 【参考方案1】:

如果您知道段落中的最大句子数(并假设您对每个段落都有单独的记录),那么您可以像这样拆分段落:

select substring_index(paragraph,'.',1) as point1, 
       ltrim(substring_index(substring_index(paragraph,'.',2),'.',-1)) as point2,
       ltrim(substring_index(substring_index(paragraph,'.',3),'.',-1)) as point3,
       ltrim(substring_index(substring_index(paragraph,'.',4),'.',-1)) as point4,
...
from my_table

【讨论】:

谢谢马克。杰出的。我能够整理出我的脚本。这基本上是为了为服装创建一个亚马逊平面文件。在您的脚本中,我用我需要选择数据的表格替换了“段落”一词; substring_index(MyTable.RequiredColumn,'.',1) as 'bullet_point1',

以上是关于从段落中提取句子的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

Android:长按时突出显示段落中的句子

根据前面的单词从段落中提取数值

我是否需要提供培训Spacy NER的句子或段落是否合适?

VBA-从IE中的部分中提取段落

PHP evFirstParagraph |从字符串中提取第一个HTML段落

如何始终在新页面中开始段落?