我目前正在开发一个带有 python 集成的 Java 项目。为此,我使用以下软件包和 ide:
Eclipse luna Jython 2.7.0 TextBlob v0.10.0-dev
这是我的java代码片段:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("AnSoMiaPy/analyser/test1.py");
PyObject translated_text = interpreter.get("translated_text");
interpreter.close();
System.out.println("translated_text: " + translated_text.toString());
python代码也相当简单。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from textblob import TextBlob
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
text = '''
The titular threat of The Blob has always struck me as the ultimate movie
monster: an insatiably hungry, amoeba-like mass able to penetrate
virtually any safeguard, capable of--as a doomed doctor chillingly
describes it--"assimilating flesh on contact.
Snide comparisons to gelatin be damned, it's a concept with the most
devastating of potential consequences, not unlike the grey goo scenario
proposed by technological theorists fearful of
artificial intelligence run rampant.
'''
blob = TextBlob(text)
blob.noun_phrases # WordList(['titular threat', 'blob',
# 'ultimate movie monster',
# 'amoeba-like mass', ...])
for sentence in blob.sentences:
print(sentence.sentiment.polarity)
# 0.060
# -0.341
translated_text = blob.translate(to="de")
print(translated_text)
print blob.sentiment.polarity
当我执行 python 代码时,我得到了我的期望:
0.06 -0.341666666667 Der Titular Bedrohung des BLOB hat mich als die ultimative Film immer geschlagen Monster: ein unersättlich hangrig, amöbenartige Masse in der Lage, zu durchdringen praktisch jede Sicherung, in der Lage ist - als Untergang geweihten Arzt unterkühlen Fleisschlagen auf Kontakt. Abfällige Vergleiche zu Gelatin verdammt sein, es ist ein Konzept, mit dem die meisten verheerende der möglichen Folgen, nicht anders als die graue Schmiere-Szenario durch technologische Theoretiker fürchten vorgeschlagen künstliche Intelligenz wuchern. -0.159091
但是,当我使用 jython 调用 python 脚本时,我得到以下结果:
0.0 0.0 Der Titular Bedrohung des BLOB hat mich als die ultimative Film immer geschlagen Monster: ein unersättlich hangrig, amöbenartige Masse in der Lage, zu durchdringen praktisch jede Sicherung, in der Lage ist - als Untergang geweihten Arzt unterkühlt es beschreibt - "assimilieren Fle Kontakt. Abfällige Vergleiche zu Gelatine verdammt sein, es ist ein Konzept, mit dem die meisten verheerende der möglichen Folgen, nicht anders als die graue Schmiere-Szenario durch technologische Theoretiker fürchten vorgeschlagen künstliche Intelligenz wuchern. 0.0 translate_text: BLOB hat mich als die ultimative Film immer geschlagen Monster: ein unersättlich hangrig, amöbenartige Masse in der Lage, zu durchdringen praktisch jede Sicherung,in der Lage ist - als Untergang geweihten Arzt unterkühlt es beschreibt - "assimilieren Fleisch auf Kontakt. Abfällige Vergleiche zu Gelatine verdammt sein, es ist ein Konzept, mit dem die meisten verheerende der möglichen Folgen, nicht anders als die graue Schmiere -Szenario durch technologische Theoretiker fürchten vorgeschlagen künstliche Intelligenz wuchern。”)
Sentiment.polarity 突然变为 0,在 Java 中访问翻译后的变量并打印它后,ascii 编码看起来有点奇怪。
有没有人遇到过类似的问题?