从段落中提取句子的 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 查询的主要内容,如果未能解决你的问题,请参考以下文章