2

我正在尝试将 Microsoft 的认知服务与数据湖结合使用,但在尝试从 CSV 文件列中的文本中获取关键短语和情绪时遇到了问题。

我已经检查以确保文件格式正确并且被正确读取(我已经完成了一些基本操作,比如复制,以确保它是可行的)。

我还确保我对 CSV 文件(描述)感兴趣的列在单独提取时只包含文本(字符串)。

输入文件和输出文件夹位于我的 Azure 数据湖中,我正在 Azure 上的数据湖分析中运行脚本。我没有尝试在 Visual Studio 中本地运行它。

我使用关键短语提取 (U-SQL)情感分析 (U-SQL)作为参考,并按照那里的说明进行操作,包括获取插件。

在每种情况下,当我提交作业时,我都会收到一个错误,我似乎无法找到解决办法。下面我展示了我为每个代码使用的代码以及运行它时遇到的错误。

关键短语代码

REFERENCE ASSEMBLY [TextSentiment];
REFERENCE ASSEMBLY [TextKeyPhrase];

@myinput =
EXTRACT 
    Modified_On string,
    _Name string,
    Description string,
    Customer string,
    Category string,
    Target_Market string,
    Person_Responsible string,
    Status string,
    _Region string,
    Modified_On_2 string,
    Created_On string,
    _Site string,
    _Team string    
FROM "/userData/fromSharepoint/Game_Plans"
USING Extractors.Csv(skipFirstNRows:1);

@keyphrase =
PROCESS @myinput
PRODUCE 
    Description,
    KeyPhrase string
READONLY
    Description
USING new Cognition.Text.KeyPhraseExtractor();

OUTPUT @keyphrase
    TO "/userData/testingCognitive/tesing1.csv"
    USING Outputters.Csv();

关键短语错误信息

在此处输入图像描述

情感代码

REFERENCE ASSEMBLY [TextSentiment];
REFERENCE ASSEMBLY [TextKeyPhrase];

@myinput =
EXTRACT 
    Modified_On string,
    _Name string,
    Description string,
    Customer string,
    Category string,
    Target_Market string,
    Person_Responsible string,
    Status string,
    _Region string,
    Modified_On_2 string,
    Created_On string,
    _Site string,
    _Team string    
FROM "/userData/fromSharepoint/Game_Plans"
USING Extractors.Csv(skipFirstNRows:1);

@sentiment =
PROCESS @myinput
PRODUCE 
    Description,
    sentiment string,
    conf double
READONLY
    Description
USING new Cognition.Text.SentimentAnalyzer(true);

OUTPUT @sentiment
    TO "/userData/testingCognitive/tesing1.csv"
    USING Outputters.Csv();

情绪错误信息

在此处输入图像描述

任何有关如何解决此问题的帮助将不胜感激。

或者,如果有人让这些功能正常工作,并且可以提供一些脚本进行测试,并提供输入文件的链接以供下载,那就太棒了。

4

1 回答 1

1

我无法重现您的确切错误(您可以发布一些简单的示例数据吗?)但我可以让这些库正常工作。我认为 KeyPhraseExtractor 默认情况下需要调用列TextKeyPhrase因此如果要更改它们,则必须将列名作为参数传递,例如

@keyphrase =
    PROCESS @myinput
    PRODUCE Description,
            KeyPhrase string
    READONLY Description
    USING new Cognition.Text.KeyPhraseExtractor("Description", "KeyPhrase");

更新:您的示例文件中有一些无效字符,就在“Bass”一词之后。这是一个不间断的空格 (U+00A0),我认为您无法导入它们 - 很高兴得到纠正。我手动删除了这些并能够导入文件。您可以以某种方式对它们进行预处理。

无效字符

于 2018-04-03T23:35:49.250 回答