我试着在朱庇特笔记本上使用德国伯特情感分析。我安装的火把是正确的,但是内核一直在死亡。我在MacOs 12.3.1的MacBook Pro '21上。我安装了Python10.3.4。PyTorch没有出现在该环境中安装的软件包列表中,尽管在终端中它告诉我“需求已经满足了”。
我试着在拥抱脸上运行示例代码postet。https://huggingface.co/oliverguhr/german-sentiment-bert
from transformers import AutoModelForSequenceClassification, AutoTokenizer
from typing import List
import torch
import re
class SentimentModel():
def __init__(self, model_name: str):
self.model = AutoModelForSequenceClassification.from_pretrained(model_name)
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.clean_chars = re.compile(r'[^A-Za-züöäÖÜÄß ]', re.MULTILINE)
self.clean_http_urls = re.compile(r'https*\\S+', re.MULTILINE)
self.clean_at_mentions = re.compile(r'@\\S+', re.MULTILINE)
def predict_sentiment(self, texts: List[str])-> List[str]:
texts = [self.clean_text(text) for text in texts]
# Add special tokens takes care of adding [CLS], [SEP], <s>... tokens in the right way for each model.
encoded = self.tokenizer.batch_encode_plus(texts,padding=True, add_special_tokens=True,truncation=True, return_tensors="pt")
encoded = encoded.to(self.device)
with torch.no_grad():
logits = self.model(**encoded)
label_ids = torch.argmax(logits[0], axis=1)
return [self.model.config.id2label[label_id.item()] for label_id in label_ids]
def replace_numbers(self,text: str) -> str:
return text.replace("0"," null").replace("1"," eins").replace("2"," zwei").replace("3"," drei").replace("4"," vier").replace("5"," fünf").replace("6"," sechs").replace("7"," sieben").replace("8"," acht").replace("9"," neun")
def clean_text(self,text: str)-> str:
text = text.replace("\n", " ")
text = self.clean_http_urls.sub('',text)
text = self.clean_at_mentions.sub('',text)
text = self.replace_numbers(text)
text = self.clean_chars.sub('', text) # use only text chars
text = ' '.join(text.split()) # substitute multiple whitespace with single whitespace
text = text.strip().lower()
return text
texts = ["Mit keinem guten Ergebniss","Das war unfair", "Das ist gar nicht mal so gut",
"Total awesome!","nicht so schlecht wie erwartet", "Das ist gar nicht mal so schlecht",
"Der Test verlief positiv.","Sie fährt ein grünes Auto.", "Der Fall wurde an die Polzei übergeben."]
model = SentimentModel(model_name = "oliverguhr/german-sentiment-bert")
print(model.predict_sentiment(texts))发布于 2022-06-14 10:16:41
你能试试这个密码吗。在一个简单易用的库中,它是相同的模型。
pip install germansentimentfrom germansentiment import SentimentModel
model = SentimentModel()
texts = [
"Mit keinem guten Ergebniss","Das ist gar nicht mal so gut",
"Total awesome!","nicht so schlecht wie erwartet",
"Der Test verlief positiv.","Sie fährt ein grünes Auto."]
result = model.predict_sentiment(texts)
print(result)发布于 2022-10-04 18:58:56
对我来说,一个类似的问题是通过在import torch导入之前移动transformer来解决的。您是否可以尝试编辑您的导入以:
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
from typing import List
import rehttps://stackoverflow.com/questions/72396420
复制相似问题