Hallo,
ich würde gerne aus einem DataFrame zwei Spalten mit Text ins Französische übersetzen und anschließend wieder ins Englische.
Das wären die Spalten 'title' und 'description'. Ich habe bisher immer nur Beispiele gefunden in denen einzelne Wörter übersetzt wurden. Gibt es eine Möglichkeit, in der ich das DataFrame eingeben kann und nur die beiden Spalten übersetzt werden?
Dankeschön für die Hilfe
DataFrame übersetzen per Google Translate
Ich denke nicht, dass ein Dataframe als Eingabe funktioniert. Das ist ein zu spezielles Ding. Du wirst jede einzelne Zelle des Frames einem solchen Dienst vorwerfen müssen, und dann das Ergebnis wieder einpflegen. Warum sind denn die einzelnen Wörter nicht gut genug?
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51
Es würde alternativ auch mit einer Liste funktionieren, wenn das geht. Es geht darum Bilder mit Texten zusammen zu Kategorien zuzuordnen. Die Texte möchte ich gerne etwas verändern, um die Anzahl dieser zu erhöhen. Als Quelle habe ich ein Dataframe. Die Texte separiere ich aber sowieso in einer Liste "corpus". Wenn diese zu übersetzen wäre würde das auch gehen.__deets__ hat geschrieben: ↑Samstag 14. August 2021, 01:23 Ich denke nicht, dass ein Dataframe als Eingabe funktioniert. Das ist ein zu spezielles Ding. Du wirst jede einzelne Zelle des Frames einem solchen Dienst vorwerfen müssen, und dann das Ergebnis wieder einpflegen. Warum sind denn die einzelnen Wörter nicht gut genug?
Vielen Dank für die Antwort!
Mir ist unklar, ob es wichtig ist, einen Satz zu übersetzen, der als Liste von Wörtern gegeben ist. Oder ob wortweise einzeln ok ist. Wenn letzteres, und du hast einen Weg, ein Wort zu übersetzen, dann musst du das eben für jedes Element der Liste machen. Mit einer simplen for-Schleife.
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51
Die einzelnen Wörter wären okay. Ich bin nur bisher auf keine Lösung gekommen mit einer For-Schleife.__deets__ hat geschrieben: ↑Samstag 14. August 2021, 09:18 Mir ist unklar, ob es wichtig ist, einen Satz zu übersetzen, der als Liste von Wörtern gegeben ist. Oder ob wortweise einzeln ok ist. Wenn letzteres, und du hast einen Weg, ein Wort zu übersetzen, dann musst du das eben für jedes Element der Liste machen. Mit einer simplen for-Schleife.
from translate import Translator
translator= Translator(to_lang="French")
translist=[]
for einzelwert in corpus:
translation = translator.translate(einzelwert)
translist.append(einzelwert)
Das war meine Lösung. Da kommt aber die Fehlermeldung: 'list' object has no attribute 'expandtabs'
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51
Code: Alles auswählen
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-48-1343d4d9ff99> in <module>()
3 translist=[]
4 for einzelwert in corpus:
----> 5 translation = translator.translate(einzelwert)
6 translist.append(einzelwert)
4 frames
/usr/lib/python3.7/textwrap.py in _munge_whitespace(self, text)
152 """
153 if self.expand_tabs:
--> 154 text = text.expandtabs(self.tabsize)
155 if self.replace_whitespace:
156 text = text.translate(self.unicode_whitespace_trans)
AttributeError: 'list' object has no attribute 'expandtabs'
Die Liste ist zu lange um sie hier einzufügen, aber hier ein Ausschnitt davon:
['black', 'Mounting', 'Mount', 'Articulating', 'ProMounts', 'PRO', 'Arm', 'Medium']
['marked', 'effectiveness', 'genuine', 'deer', 'independent', 'single', 'organization', 'Blue', 'true', 'Ounce', 'life', 'one', 'animal', 'taken', 'Urine', 'certified', 'ounce', 'use', 'Code', 'bottle', 'Perfect', 'article', 'Every', 'number', 'registration', 'urine', 'long', 'Buck', 'season']
['BLUSH', 'BSB', 'hours', 'blush', 'Applicator', 'Use', 'contour', 'true', 'beautifully', 'color', 'Colors', 'touch', 'Spice', 'Silky', 'cheeks', 'Professional', 'stays', 'smooth', 'highlight', 'adds', 'Series']
['model', 'trim', 'parts', 'interior', 'appreciate', 'Rebecca', 'seatbelts', 'die', 'done', 'wheel', 'smartly', 'respond', 'inch', 'trunk', 'offering', 'Lamborghini', 'steering', 'even', 'The', 'roadster', 'independent', 'Hughes', 'metal', 'Inside', 'removable', 'best', 'lovers', 'Each', 'fast', 'Turn', 'seater', 'ultrasporty', 'open', 'spring', 'car', 'right', 'wanted', 'scale', 'thoughtful', 'shoulder', 'back', 'black', 'white', 'upward', 'come', 'next', 'Maisto', 'touch', 'harness', 'doors', 'red', 'built', 'owning', 'engine', 'plastic', 'Legend', 'Have', 'Diablo', 'actual', 'spare', 'always', 'Best', 'wheels', 'thing', 'seats', 'tire', 'smoothest', 'cast', 'also', 'front', 'bookLamborghini', 'This', 'bucket', 'long', 'rides', 'suspension']
['Creek', 'chips', 'choice', 'bacon', 'wood', 'ideal', 'rich', 'pork', 'soaked', 'gas', 'grill', 'chicken', 'Our', 'Recommended', 'distinct', 'smoker', 'game', 'creates', 'electric', 'also', 'used', 'beef', 'flavor', 'perfect', 'wild', 'need', 'Wood', 'smokers', 'premium', 'Hickory', 'charcoal', 'meat', 'gives', 'They', 'Chips', 'smoky', 'like', 'full', 'Chigger']
['ewe', 'expel', 'depicts', 'veggies', 'salads', 'sweetness', 'Basque', 'traditional', 'word', 'contact', 'country', 'stacked', 'high', 'textured', 'salt', 'apples', 'ewes', 'lovely', 'transhumance', 'purchase', 'Made', 'lowlands', 'olives', 'picnic', 'name', 'aged', 'whole', 'The', 'yet', 'summer', 'comes', 'close', 'similar', 'late', 'pressed', 'Etorki', 'buffet', 'pound', 'cut', 'creamy', 'French', 'like', 'September', 'shepherds', 'vertically', 'hour', 'takes', 'firm', 'Local', 'black', 'Manech', 'made', 'pears', 'oily', 'years', 'June', 'source', 'butterfat', 'red', 'texture', 'burnt', 'molds', 'pasteurized', 'wrap', 'plastic', 'pastures', 'Photo', 'faced', 'bath', 'cheese', 'cheeses', 'small', 'allow', 'whey', 'rubbed', 'mid', 'caramel', 'curd', 'brine', 'Please', 'After', 'supple', 'sheep', 'flock', 'origin', 'later', 'Pyrenees', 'press', 'raw', 'form', 'item', 'two', 'six', 'soaked', 'modern', 'fine', 'dating', 'igourmet', 'impregnated', 'ounce', 'regenerate', 'July', 'From', 'flocks', 'would', 'This', 'December', 'months', 'milk', 'cloths', 'three']
['Grappling', 'ninja', 'approximately', 'Hook', 'iron', 'made', 'hook', 'true', 'weapon', 'casting', 'TMAS', 'grappling', 'Ninja', 'foot', 'nylon', 'rope', 'long', 'attached']
['original', 'specs', 'instructions', 'brings', 'back', 'power', 'marine', 'pump', 'Kit', 'needles', 'seats', 'Carburetor', 'carburetors', 'diaphragms', 'carburetor', 'new', 'gaskets', 'condition', 'Holley', 'valves', 'rings', 'complete', 'detailed', 'This', 'renew', 'kit', 'necessary', 'rebuild', 'Renew', 'like', 'includes', 'hardware']
['Caps', 'Zinc', 'TwinLab', 'capsules', 'Twinlab', 'cap']
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51
Das hat schon einmal sehr geholfen danke! Der Code wird dann auch ausgeführt, aber läd nur. Er hängt dann an der Stelle " translation = translator.translate(wort)
Code: Alles auswählen
from translate import Translator
translator= Translator(to_lang="French")
translist=[]
for einzelwert in corpus:
for wort in einzelwert:
translation = translator.translate(wort)
translist.append(wort)
Das klingt so, als ob der Übersetzer ein online Service ist. Und nicht oder langsam antwortet. Darauf habe ich erstmal auch keine Antwort. Hast du den vorher am Laufen gehabt? Hat der Ggf eine drosselung bei zu vielen Anfragen?
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51
Hi,
ja genau das habe ich gerade auch festgestellt. Ich habe testweise die Übersetzung mal ausgeben lassen. Dann kommt die Info, dass die Anzahl an kostenlosen Übersetzungen aufgebraucht sind für heute. Das bringt mir dann wohl nicht sehr viel, da das schon viele Wörter sind, die übersetzt werden sollen.
Danke trotzdem für die Hilfe!
-
- User
- Beiträge: 7
- Registriert: Freitag 13. August 2021, 16:51