首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将用户输入的阿拉伯语答案翻译成英语

如何将用户输入的阿拉伯语答案翻译成英语
EN

Stack Overflow用户
提问于 2020-09-16 02:09:49
回答 1查看 48关注 0票数 1

我想把用户输入的答案用阿拉伯语翻译成英语,然后在模型中训练它,但它不工作,请任何人可以帮助我!

代码语言:javascript
复制
from flask import Flask, render_template, url_for, request, jsonify      
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer 
import pickle
import numpy as np
import googletrans
from googletrans import Translator
app = Flask(__name__)`

# Load the TF-IDF vocabulary specific to the category

with open(r"toxic_vect.pkl", "rb") as f:
   tox = pickle.load(f)

with open(r"severe_toxic_vect.pkl", "rb") as f:
   sev = pickle.load(f)

with open(r"obscene_vect.pkl", "rb") as f:
   obs = pickle.load(f)

with open(r"insult_vect.pkl", "rb") as f:
   ins = pickle.load(f)

with open(r"threat_vect.pkl", "rb") as f:
   thr = pickle.load(f)

with open(r"identity_hate_vect.pkl", "rb") as f:
   ide = pickle.load(f)`

# Load the pickled RDF models

with open(r"toxic_model.pkl", "rb") as f:
   tox_model = pickle.load(f)

with open(r"severe_toxic_model.pkl", "rb") as f:
   sev_model = pickle.load(f)

with open(r"obscene_model.pkl", "rb") as f:
   obs_model  = pickle.load(f)

with open(r"insult_model.pkl", "rb") as f:
   ins_model  = pickle.load(f)

with open(r"threat_model.pkl", "rb") as f:
   thr_model  = pickle.load(f)

with open(r"identity_hate_model.pkl", "rb") as f:
   ide_model  = pickle.load(f)`

# Render the HTML file for the home page

@app.route("/")
def home():
   return render_template('index_toxic.html')

@app.route("/predict", methods=['POST'])
def predict():

   # Take a string input from user
   data = request.form['text']

   #translate data to english
   translator = Translator()
   result = translator.translate(data)
   data = result.text
   data = [data]

   vect = tox.transform(data)
   pred_tox = tox_model.predict_proba(vect)[:,1]

   vect = sev.transform(data)
   pred_sev = sev_model.predict_proba(vect)[:,1]

   vect = obs.transform(data)
   pred_obs = obs_model.predict_proba(vect)[:,1]

   vect = thr.transform(data)
   pred_thr = thr_model.predict_proba(vect)[:,1]

   vect = ins.transform(data)
   pred_ins = ins_model.predict_proba(vect)[:,1]

   vect = ide.transform(data)
   pred_ide = ide_model.predict_proba(vect)[:,1]

   out_tox = round(pred_tox[0], 2)
   out_sev = round(pred_sev[0], 2)
   out_obs = round(pred_obs[0], 2)
   out_ins = round(pred_ins[0], 2)
   out_thr = round(pred_thr[0], 2)
   out_ide = round(pred_ide[0], 2)

   print(out_tox)

   return render_template('index_toxic.html', 
                           pred_tox='Prob (Toxic): {}'.format(out_tox),
                           pred_sev='Prob (Severe Toxic): {}'.format(out_sev), 
                           pred_obs='Prob (Obscene): {}'.format(out_obs),
                           pred_ins='Prob (Insult): {}'.format(out_ins),
                           pred_thr='Prob (Threat): {}'.format(out_thr),
                           pred_ide='Prob (Identity Hate): {}'.format(out_ide)                        
                         )
 
# Server reloads itself if code changes so no need to keep restarting:

app.run(debug=True)

这是我在html页面中得到的错误:

代码语言:javascript
复制
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\elidr\Desktop\PFE - Copie\toxic_comments_classifier-master\toxic_comments_classifier-master\Flask app for toxic comments\toxic_app.py", line 66, in predict
   vect = tox.transform(data)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\sklearn\feature_extraction\text.py", line 1898, in transform
    X = super().transform(raw_documents)
File "C:\Users\elidr\.conda\envs\toxic\Lib\site-packages\sklearn\feature_extraction\text.py", line 1264, in transform
    raise ValueError(
ValueError: Iterable over raw text documents expected, string object received.}
EN

回答 1

Stack Overflow用户

发布于 2020-09-16 21:26:15

错误信息为:

代码语言:javascript
复制
Iterable over raw text documents expected, string object received

当你调用

代码语言:javascript
复制
vect = tox.transform(data)

在你的代码中。

sklearn\feature_extraction\text.py中,我们了解到:

代码语言:javascript
复制
raw_documents : iterable
            An iterable which yields either str, unicode or file objects

因此,将data从string对象转换为可生成字符串的迭代器:

代码语言:javascript
复制
def raw_documents(data):
    for line in data.splitlines():
        assert isinstance(line, str)
        yield line

并像这样使用它:

代码语言:javascript
复制
translator = Translator()
result = translator.translate(data)
data = result.text
vect = tox.transform(raw_documents(data))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63907581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档