簡體   English   中英

GCP情感分析針對17個不同的文檔返回相同的分數,我在做什么錯呢?

[英]GCP Sentiment Analysis returns same score for 17 different documents, what am I doing wrong?

我正在對17個不同的文檔進行Google Cloud Platform的情緒分析,但是它給我的分數是相同的,每個分數的大小不同。 這是我第一次使用此程序包,但據我所知,所有這些都不可能具有完全相同的分數。

這些文檔是大小不一的pdf文件,但是在15至20頁之間,我將其中的3個排除在外,因為它們並不相關。

我已經嘗試過將代碼與其他文檔一起使用,它為較短的文檔提供了不同的分數,我懷疑它可以處理的文檔最大長度,但是在文檔中或通過Google找不到任何內容。

def analyze(text):
    client = language.LanguageServiceClient(credentials=creds)    

    document = types.Document(content=text, 
        type=enums.Document.Type.PLAIN_TEXT)

    sentiment = client.analyze_sentiment(document=document).document_sentiment
    entities = client.analyze_entities(document=document).entities

    return sentiment, entities


def extract_text_from_pdf_pages(pdf_path):
    resource_manager = PDFResourceManager()
    fake_file_handle = io.StringIO()
    converter = TextConverter(resource_manager, fake_file_handle)
    page_interpreter = PDFPageInterpreter(resource_manager, converter)

    with open(pdf_path, 'rb') as fh:
        last_page = len(list(enumerate(PDFPage.get_pages(fh, caching=True, check_extractable=True))))-1

        for pgNum, page in enumerate(PDFPage.get_pages(fh, 
                                  caching=True,
                                  check_extractable=True)):

            if pgNum not in [0,1, last_page]:
                page_interpreter.process_page(page)

        text = fake_file_handle.getvalue()

    # close open handles
    converter.close()
    fake_file_handle.close()

    if text:
        return text

結果(得分,大小):

doc1 0.10000000149011612-147.5


doc2 0.10000000149011612-118.30000305175781


doc3 0.10000000149011612-144.0


doc4 0.10000000149011612-147.10000610351562


doc5 0.10000000149011612-131.39999389648438


doc6 0.10000000149011612-116.19999694824219


doc7 0.10000000149011612-121.0999984741211


doc8 0.10000000149011612-131.60000610351562


doc9 0.10000000149011612-97.69999694824219


doc10 0.10000000149011612-174.89999389648438


doc11 0.10000000149011612-138.8000030517578


doc12 0.10000000149011612-141.10000610351562


doc13 0.10000000149011612-118.5999984741211


doc14 0.10000000149011612-135.60000610351562


doc15 0.10000000149011612-127.0


doc16 0.10000000149011612-97.0999984741211


doc17 0.10000000149011612-183.5


所有文檔預期會有不同的結果,至少會有很小的變化。 (與我在文檔中和其他地方所發現的相比,這些幅度得分也太高了)

是的, 自然語言API的使用有一些配額

Natural Language API將文本處理為一系列標記,這些標記大致對應於單詞邊界。 嘗試處理超出令牌配額(默認情況下,每個查詢100.000個令牌)的令牌不會產生錯誤, 但是超過該配額的任何令牌都將被忽略

對於第二個問題,我很難在不訪問文檔的情況下評估自然語言API的結果。 也許因為他們太中立了,所以您得到的結果非常相似。 我用中性的大文本進行了一些測試,結果也差不多。

只是為了澄清, 如自然語言API文檔中所述

  • documentSentiment包含文檔的總體觀點,由以下字段組成:
    • 情感的分數介於-1.0(負)和1.0(正)之間,與文本的整體情感傾向相對應。
    • 幅度表示給定文本內的總體情緒強度(正向和負向),介於0.0和+ inf之間。 與得分不同,幅度未歸一化。 文本中的每種情感表達方式(積極和消極的)都有助於文本的大小(因此,較長的文本塊可能具有更大的大小)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM