GATE 情绪分析是如何工作的?

Posted

技术标签:

【中文标题】GATE 情绪分析是如何工作的?【英文标题】:how does GATE sentiment analysis work? 【发布时间】:2014-10-01 07:45:07 【问题描述】:

我成功创建了一个情绪分析管道,如示例中所示:https://gate.ac.uk/sale/talks/gate-course-may10/track-3/module-11-ml-adv/module-11-sentiment.pdf 但现在我想使用不同的语料库:它是德语;我有两个文件,其中包含具有正面或负面特征的德语短语。我把它写成这样的 .xml 文件:

<?xml version='1.0' encoding='UTF-8' ?>
<GateDocument>
<GateDocumentFeatures>
<Feature>
  <Name className="java.lang.String">gate.SourceURL</Name>
  <Value className="java.lang.String">file:/C:/Users/user/Documents/text</Value>
</Feature>
<Feature>
  <Name className="java.lang.String">MimeType</Name>
  <Value className="java.lang.String">text/plain</Value>
</Feature>
</GateDocumentFeatures>

<TextWithNodes>
<Node id="0" />10:41 Uhr &apos; Ist aber ein schwacher Trost. 
<Node id="47" />1969 das Problem der Entsorgung offiziell angesprochen. 
<Node id="103" />
...
</TextWithNodes>

<AnnotationSet Name="Key">
<Annotation Id="0" Type="comment" StartNode="0" EndNode="47">
<Feature>
  <Name className="java.lang.String">rating</Name>
  <Value className="java.lang.Double">2.0</Value>
</Feature>
</Annotation>
...
</AnnotationSet>
</GateDocument>

但是我不明白如何使用paum.xml:

1) 在本教程的示例中,有一个 String-rating-feature(例如“2_Star_Rating”)而不是 Double,但我不知道 paum.xml / 管道如何处理这个 String-feature - 以及如何我告诉我的管道我现在有一个 Double 值可以使用?

2) 当我在应用程序模式下运行批量学习 PR 时:文本语料库的样子如何?纯文本可以吗?

在第一次试用中,我使用了教程中的相同 paum.xml 文件,并将我的评分从双 (2.0) 转换为字符串 (“2_Star_Rating”) - 在训练和应用模式下没有出现错误 - 但是当我查看我的文本文件(我在 app.mode 中运行管道),没有设置注释。

【问题讨论】:

如果我使用 String 而不是 double 就可以了,只需将每个 double 都“转换”为“pos”、“neg”或“neu”。所以问题(2)对我来说更重要。 【参考方案1】:

为什么不使用简化的 XML,例如:

这是一个带有意见 1 的评论 1 文本

这是一个带有意见 2 的评论 2 文本

它可以是每个文件的注释,也可以是一个文件中包含许多 cmets 的文件。

然后您可以使用 AnnotationSet Transfer PR 并将 Annotations 从“原始标记”复制到语料库填充后的默认集。

【讨论】:

【参考方案2】:

最后我发现了 GATE 的期望: 给定的文档(将被分析)必须如下所示:

<?xml version='1.0' encoding='UTF-8' ?>
<GateDocument>
<GateDocumentFeatures>
<Feature>
  <Name className="java.lang.String">gate.SourceURL</Name>
  <Value className="java.lang.String">file:/C:/Users/user/Documents/text</Value>
</Feature>
<Feature>
  <Name className="java.lang.String">MimeType</Name>
  <Value className="java.lang.String">text/html</Value>
</Feature>
</GateDocumentFeatures>
<TextWithNodes>
<Node id="0" />sentence1
<Node id="9" />
...
</TextWithNodes>

<AnnotationSet Name="Key">
<Annotation Id="1" Type="comment" StartNode="0" EndNode="9">
</Annotation>
...
</AnnotationSet>
</GateDocument>

【讨论】:

好的,也可以(并且更容易)使用纯文本并将 JAPE 转换器添加到管道中,该管道将 annotationSet 添加到文本(在这种情况下:将注释命名为“comment”并设置 outputASname到“键”)

以上是关于GATE 情绪分析是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Vader 情绪分析:如何对单个单词进行评分?

人脸情绪识别 需求分析心得

如何记录/导出模型检测到的情绪?

如何在 SVM 情绪分析中使用 predict_proba

对关键字的情绪

NLTK:情绪分析:结果一值