Nltk: word_tokenize يستبدل الأحرف

تم إنشاؤها على ١٥ فبراير ٢٠١٧  ·  5تعليقات  ·  مصدر: nltk/nltk

عند استخدام دالة word_tokenize ، يتم استبدال علامات الاقتباس بعلامات اقتباس مختلفة.

مثال (ألماني):

import nltk
sentence = "\"Ja.\"" # sentence[0] = "
tokens = nltk.word_tokenize(sentence) #tokens[0] = ``
print(tokens[0] == sentence[0]) # Prints false.

هل هذا خطأ أم هناك سبب وراء هذا السلوك؟

التعليق الأكثر فائدة

mwess بعد إجراء بعض التدقيق ، فإن التحويل من " إلى `` هو قطعة أثرية من كلمة penn treebank الأصلية .

يحدث ذلك فقط عندما تكون هناك علامات اقتباس مزدوجة ، قواعد regex التي تقوم بالبدائل هي https://github.com/nltk/nltk/blob/develop/nltk/tokenize/treebank.py#L49

أما بالنسبة لعروض الأسعار المنفردة ، فإن رمز بنك الشجرة المميز STARTING_QUOTES regexes نرى أنه لا يشير إلى الاتجاه. أعتقد أن هذا لا يزال متسقًا مع شروح بن تريبانك.

آمل أن تساعد التوضيحات.

ال 5 كومينتر

نعم ، هذا هو الناتج المتوقع. يتم تغيير علامات التنقيط المزدوجة للإشارة صراحة إلى علامات الاقتباس المزدوجة الافتتاحية والختامية. يتم تحويل " الافتتاحي إلى 2x backticks والإغلاق إلى 2x من علامات الاقتباس المفردة.

>>> from nltk import word_tokenize
>>> sent = '"this is a sentence inside double quotes."'
>>> word_tokenize(sent)
['``', 'this', 'is', 'a', 'sentence', 'inside', 'double', 'quotes', '.', "''"]
>>> word_tokenize(sent)[0]
'``'

>>> len(word_tokenize(sent)[0])
2
>>> word_tokenize(sent)[0] == '`'*2
True

>>> len(word_tokenize(sent)[-1])
2
>>> word_tokenize(sent)[-1] == "'" * 2
True

لست متأكدًا من سبب هذا السلوك بالرغم من ذلك. من المحتمل أن يكون ذلك واضحًا عند تحديد عروض الأسعار الافتتاحية / الختامية.

شكرا على الشرح.
ولكن عندما أستبدل علامات الاقتباس المزدوجة بعلامة اقتباس مفردة (أو اثنتين) أو علامات اقتباس خلفية ، لا يحدث هذا السلوك.
وأعتقد أنه من الغريب بعض الشيء أن يقوم الرمز المميز بتبديل أجزاء من النص الأصلي ، لأنه قد يؤدي إلى مشاكل وليس شفافًا حقًا.

أعتقد أنه سيتعين عليّ وضعها في الاعتبار ، لكنني أفضل أن تظل العناصر الأصلية للسلسلة كما هي.

mwess بعد إجراء بعض التدقيق ، فإن التحويل من " إلى `` هو قطعة أثرية من كلمة penn treebank الأصلية .

يحدث ذلك فقط عندما تكون هناك علامات اقتباس مزدوجة ، قواعد regex التي تقوم بالبدائل هي https://github.com/nltk/nltk/blob/develop/nltk/tokenize/treebank.py#L49

أما بالنسبة لعروض الأسعار المنفردة ، فإن رمز بنك الشجرة المميز STARTING_QUOTES regexes نرى أنه لا يشير إلى الاتجاه. أعتقد أن هذا لا يزال متسقًا مع شروح بن تريبانك.

آمل أن تساعد التوضيحات.

شكرا جزيلا. في الواقع يساعد كثيرا.

لا ينصح بتعديل النص الأصلي في العديد من التطبيقات. أتمنى أن يكون لدى word_tokenize علامة لإيقاف تعديل النص.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات