【问题标题】:How to parse this format (Praat TextGrid)如何解析这种格式(Praat TextGrid)
【发布时间】:2011-05-29 12:05:29
【问题描述】:

TextGrid 是 Praat 程序使用的“分段”文件。我想编写一个解析器,然后验证数据。我的问题是:

您将如何为这种格式编写解析器?逐行阅读还是别的什么?这是一种已知格式吗?

File type = "ooTextFile"
Object class = "TextGrid"

xmin = 0 
xmax = 93.0538775510204 
tiers? <exists> 
size = 3 

item []: 
    item [1]:
        class = "IntervalTier" 
        name = "diph" 
        xmin = 0 
        xmax = 93.0538775510204 
        intervals: size = 65 
        intervals [1]:
            xmin = 0 
            xmax = 1.300090702947846 
            text = "" 
        intervals [2]:
            xmin = 1.300090702947846 
            xmax = 1.5300845864661654 
            text = "ey_s" 
        intervals [3]:
            xmin = 1.5300845864661654 
            xmax = 3.4648692624493815 
            text = "" 

(然后重复到 EOF,间隔 [4....n])

【问题讨论】:

  • 我会用整个 JSON 规范打击该格式的作者。不幸的是,规范只有一页。
  • @marw 我不知道格式,但它看起来很自定义。你能给我们举个例子来说明反斜杠、引号和换行符是如何存储的吗?如果是这样,编写解析器非常简单。
  • 好吧,谷歌找到了我 :) NLTK 中存在解析器:nltk.googlecode.com/svn/trunk/nltk_contrib/nltk_contrib/… 感谢您的 cmets!如果上述失败,我会重新打开它。
  • @marw 实际上,将您的答案作为真实答案添加到您的问题(以及这些 cmets)下方,而不是作为问题的一部分。 :-)
  • 我试过了,但我没有 100 分,我必须等待 8 小时才能回答我自己的问题。 :) 我稍后会改变它。

标签: python parsing text


【解决方案1】:

TextGrid 解析器已经存在,它是 NLTK 工具包的一部分。 Python 文件在这里:

http://nltk.googlecode.com/svn/trunk/nltk_contrib/nltk_contrib/textgrid.py

更新链接: https://github.com/nltk/nltk_contrib/blob/master/nltk_contrib/textgrid.py

【讨论】:

  • 此链接不再可用。
  • Github repo 有了新的内容。
  • 我很好奇 .textgrid 文件长什么样。
【解决方案2】:

Automatic Praat 的 TextGrid File Parser 是一个用于解析 Praat 的 textGrid 文件的小应用程序。解析的结果是保存在输出文本文件中的电子表格。输出文本文件可以通过 Excel 等应用程序导入。 TGP 是一个灵活的程序,可以很容易地不断扩展或修改,它目前能够分析某些类型的 TextGrid 文件。 TGP 1.0 版读取具有以下项目类型的 TextGrid 文件:单词、电话和可选的焦点。

http://tgp.peremila.com/

【讨论】:

    【解决方案3】:

    另一种解决方案是使用这些 Praat 对象的 JSON 或 YAML 表示;那么解析正确性是微不足道的。

    我已经编写了两个 Perl 脚本来实现这一点(转换 from Praat to JSON/YAML 和转换 from YAML/JSON to Praat),这可能对这些任务有用。

    这些脚本是我维护的名为serialise 的插件的一部分,该插件通过CPrAN 分发。该实现有点小技巧,但它非常稳定,并且该插件支持您想要使用的大多数对象。欢迎所有的cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2018-07-04
      • 2018-03-07
      • 2018-03-01
      • 2021-08-29
      • 2013-07-17
      相关资源
      最近更新 更多