【问题标题】:Extract Sentences from A String从字符串中提取句子
【发布时间】:2021-04-21 18:35:29
【问题描述】:

我正在开发一个使用谷歌语音识别 api 的机器学习聊天机器人项目。

现在我的问题是,当我在一个命令中说 2 个或多个句子时,语音识别 api 会返回一个字符串中的所有句子,没有任何句号或逗号。结果,分离句子变得更加困难。例如,如果我说,

Take a photo. Tell me about today's weather. Open Google Chrome.

语音识别 api 返回: take a photo tell me about todays weather open Google Chrome

所以,我的聊天机器人把这个完整的字符串当作一个句子。

有没有办法像上面那样从字符串中提取句子?

(顺便说一句,我正在使用 Python)

【问题讨论】:

    标签: python nltk


    【解决方案1】:

    如果您要说多个命令,请说出“and”之类的词,然后根据该词拆分命令。现在遍历列表并将每个值传递给您的执行函数。

    如果变量command 存储您的值,则使用command.split(" and ") 拆分它

    我之前回答过一个类似的问题,看看它: https://stackoverflow.com/a/65872940/12279129

    【讨论】:

    • 感谢您的回答,但您刚才所说的我已经实现了。但是每次说“和”对我来说感觉很奇怪。这就是为什么我有兴趣使用 NLP 来做这件事。如果你能告诉我如何使用 nlp 来做这将很有帮助。
    【解决方案2】:

    我认为您可以尝试不同的方法来解决问题:

    1. 简单的解决方案

    我目前不知道您的系统是如何工作的,但如果您只是在寻找一些子句,您可以在整组句子中搜索,如果有您正在寻找的内容。 即

    input_str = "Take a photo turn on fan".lower()
    
    if "take a photo" in input_str :
     print("Just took a photo!")
    if "turn on fan" in input_str :
     print("Just turned the fan on!")
    

    你也可以选择一个分隔词(比如and,此外,..)并将其用作分隔符。

    1. 更高级的解决方案

    您可以使用 NLP 库(即spacy)并执行实体识别,以便您可以将动词与名词等分开。 之后,您甚至可以使用stemming and lemmatization 来进一步概括识别。

    您还可以使用不同的 NLP 技术(例如去除停用词)执行许多中间步骤。

    1. 尝试从 API 自动标点符号

    也许您可以尝试在语音转文本 api 中使用enabling 自动标点符号,看看这是否适合您。

    【讨论】:

    • 非常感谢!您的第二个和第三个解决方案非常有帮助。
    【解决方案3】:

    这是因为 Google Cloud Speech 不提供自然语言理解,而您在解析文本脚本时遇到了困难。

    您当然可以自己创建自然语言理解组件,可以使用简单的正则表达式,也可以使用 Rasa 之类的东西,但也有更聪明的方法。

    Speechly 为您提供在 Android、iOS 或 Web 上创建语音用户界面所需的一切。它不仅会为您返回成绩单,还会返回可操作的意图和实体,这使得创建更复杂的东西变得更加容易。最好的部分是它每月最多免费 20 小时。

    您可以看到一个非常简单的示例,说明它是如何工作的,例如创建搜索体验 here。但是,基本思想始终是相同的:创建一个模型并测试它是否为您的语音输入返回正确的意图。完成后,您通过循环返回的结果将其集成到您的应用程序中,并且每当您获得正确的意图时,根据需要在您的应用程序中做出反应。其实很简单。

    【讨论】:

      【解决方案4】:

      你可以使用拆分方法

      让你的字符串是A

      X = A.split('.')
      

      它将使 X 成为一个列表,其中包含作为句子的项目

      【讨论】:

      • google api返回的字符串中没有点,所以我认为你应该用空格替换它:X = A.split(' ')
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 2021-12-23
      相关资源
      最近更新 更多