7

我正在编写一个 Java 程序,需要分析一小段文本(3-4 个句子,转述的新闻文章)以了解他们的情绪。我只需要知道这篇文章总体上是正面的、负面的还是中性的。

例如,理想情况下,以下内容将被归类为正面:

亚马逊的 Kindle 电子书销量飙升。亚马逊表示,其 Kindle 电子阅读设备销售的电子书数量超过了平装本和精装印刷版的总和

我所需要的只是一个非常简单且快速实施的第三方解决方案,我可以在我的程序中使用它。它不必一直完全准确。只要可以跟踪解决方案,许可证等就不是问题。

到目前为止,我已经找到了一个潜在的好解决方案,AlchemyAPI,但我很难实际使用它。


如果有人以前遇到过这个问题并且知道一个特别好的/简单的解决方案,或者一个非常好的教程,我将非常感激:-)


(另外我为这个问题中缺少代码而道歉。)

4

4 回答 4

15

我刚刚测试了 AlchemyAPI。它不是 100% 准确,但我猜这种技术仍处于起步阶段。

您需要注册(免费)才能获得 api 密钥。

这是一个示例用法:http://access.alchemyapi.com/calls/text/TextGetTextSentiment?apikey=<insert your api key>&sentiment=1&showSourceText=1&text=Kindle%20e-book%20sales%20soar%20for%20Amazon.%20Amazon.com%20says%20it%20is%20selling%20more%20e-books%20for%20its%20Kindle%20electronic%20reading%20device%20than%20paperback%20and%20hardback%20print%20editions%20combined

输入是:

  1. 情绪=1
  2. 显示源文本=1
  3. 文本(我使用了您的示例文本,uri 编码)

我得到以下输出(中性情绪,而不是预期的积极情绪):

<?xml version="1.0" encoding="UTF-8"?>
<results>    
    <status>OK</status>    
    <usage>By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html</usage>    
    <url></url>    
    <language>english</language>    
    <text>Kindle e-book sales soar for Amazon. Amazon.com says it is selling more e-books for its Kindle electronic reading device than paperback and hardback print editions combined</text>    
    <docSentiment>    
        <type>neutral</type>    
    </docSentiment>    
</results>


另一个示例用法:http://access.alchemyapi.com/calls/text/TextGetTextSentiment?apikey=<insert your api key>&sentiment=1&showSourceText=1&text=kindle%20is%20amazing

和输出:

<?xml version="1.0" encoding="UTF-8"?>    
<results>    
    <status>OK</status>    
    <usage>By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html</usage>    
    <url></url>    
    <language>english</language>    
    <text>kindle is amazing</text>    
    <docSentiment>    
        <type>positive</type>    
        <score>0.283568</score>    
    </docSentiment>    
</results>
于 2011-05-20T14:58:35.540 回答
0

Alchemy API Java SDK 在这里:

http://www.alchemyapi.com/developers/sdks/

使用 Alchemy API 的示例 Java 代码如下:

https://gate.ac.uk/gate/plugins/AlchemyAPI/src/com/alchemyapi/api/AlchemyAPI.java

这是另一个:

https://github.com/RubenVerborgh/Refine-NER-Extension/blob/master/src/org/freeyourmetadata/ner/services/AlchemyAPI.java

这是一个通过 LikeColor 的 Java 客户端:

https://github.com/likethecolor/Alchemy-API

于 2014-11-06T06:31:08.630 回答
0

2018 年还有更多的情绪分析 API!:-) 根据您需要的功能或文本的语言,您可以使用其中之一:

  • LexSent by hyindao 在 Algorithmia
  • 来自 Algorithmia 的 mtman 的情绪分析
  • 由 nlu 在 Algorithmia 进行的情绪分析
  • Algorithmia 上 nlu 的社会情绪分析
  • 亚马逊网络服务理解
  • Aylien 文本分析
  • Boson NLP 情绪分析
  • 谷歌云自然语言
  • IBM 沃森 NLU
  • 意义云情绪分析
  • 微软认知服务文本分析
  • 声名狼藉的文本分析
  • Salesforce 爱因斯坦语言
  • 双字情感分析
  • 说先入为主

对于语言支持、功能和价格比较,我会参考这篇文章

于 2018-04-26T03:37:11.267 回答
-1

如果您需要更好的情绪分析准确性,您可以自己训练模型,例如https://text2data.com/Sentiment-Model-Training

于 2018-11-28T13:10:46.993 回答