我在spacy處理的數據出現了一些non-traditional。例如,不總是保留空格,導致“(在令牌的中間。EX)”新iPhone將于下周發布,如蘋果(史蒂夫·喬布斯)發布的。因為“蘋果”和“()之間沒有空格,它實現了“蘋果(史提夫)”作為一個標記。我嘗試添加一個中綴,將下面的內容添加到傳統的'train_spacy代碼中。
infixes = (nlp.Defaults.infixes + [r"("])
infix_re = compile_infix_regex(infixes)
nlp.tokenizer.infix_finditer = infix_re.finditer
這給了我一個錯誤:缺少(未終止)子模式。關于如何解決這個問題有什么建議嗎?
r"("
不是有效的正則表達式,因為括號在正則表達式中有特殊含義。要真正談論角色(
,請執行r"\("
。