[英]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.