这应该是 suffix 、 infix 或 prefix 规则吗?
Is this supposed to be a suffix , infix or prefix rule?
我想添加特殊情况以标记以下内容
DATE:01/01/2020
默认标记化将其保留为单个标记,但我需要像这样拆分它
'DATE', ':', '01/01/2020'
我在默认值中添加了一个中缀规则,如下所示,这似乎有效
# modify tokenizer infix patterns
infixes = (
LIST_ELLIPSES
+ LIST_ICONS
+ [
r"(?<=[0-9])[+\-\*^](?=[0-9-])",
r"(?<=[{al}{q}])\.(?=[{au}{q}])".format(
al=ALPHA_LOWER, au=ALPHA_UPPER, q=CONCAT_QUOTES
),
r"(?<=[{a}]),(?=[{a}])".format(a=ALPHA),
r"(?<=[{a}])(?:{h})(?=[{a}])".format(a=ALPHA, h=HYPHENS),
r"(?<=[{a}0-9])[:<>=/](?=[{a}])".format(a=ALPHA),
#this regex is added to handle colon preceded by alpha and followed by numeric
r"(?<=[{a}])[:](?=([0-9][0-9][/]))".format(a=ALPHA)
]
)
infix_re = compile_infix_regex(infixes)
nlp.tokenizer.infix_finditer = infix_re.finditer
doc = nlp(text)
print([t.text for t in doc])
不过我想知道我应该将它添加到哪一个 - 后缀、中缀还是前缀?
我想不出一个有效的后缀规则。
一般来说,我们如何决定使用哪一类规则?
标记到底是前缀、中缀还是后缀并不重要,通常可以有多种方法获得相同的结果。
我认为最好的方法是添加一个正则表达式,其中 :
作为 DATE
和数字之间的中缀。如果这在其他情况下不会造成任何副作用,您也可以同时添加 DATE
和 :
作为前缀,这可能稍微容易一些,因为您只需将项目添加到 TOKENIZER_PREFIXES
无需编写任何正则表达式。
我想添加特殊情况以标记以下内容
DATE:01/01/2020
默认标记化将其保留为单个标记,但我需要像这样拆分它
'DATE', ':', '01/01/2020'
我在默认值中添加了一个中缀规则,如下所示,这似乎有效
# modify tokenizer infix patterns
infixes = (
LIST_ELLIPSES
+ LIST_ICONS
+ [
r"(?<=[0-9])[+\-\*^](?=[0-9-])",
r"(?<=[{al}{q}])\.(?=[{au}{q}])".format(
al=ALPHA_LOWER, au=ALPHA_UPPER, q=CONCAT_QUOTES
),
r"(?<=[{a}]),(?=[{a}])".format(a=ALPHA),
r"(?<=[{a}])(?:{h})(?=[{a}])".format(a=ALPHA, h=HYPHENS),
r"(?<=[{a}0-9])[:<>=/](?=[{a}])".format(a=ALPHA),
#this regex is added to handle colon preceded by alpha and followed by numeric
r"(?<=[{a}])[:](?=([0-9][0-9][/]))".format(a=ALPHA)
]
)
infix_re = compile_infix_regex(infixes)
nlp.tokenizer.infix_finditer = infix_re.finditer
doc = nlp(text)
print([t.text for t in doc])
不过我想知道我应该将它添加到哪一个 - 后缀、中缀还是前缀?
我想不出一个有效的后缀规则。
一般来说,我们如何决定使用哪一类规则?
标记到底是前缀、中缀还是后缀并不重要,通常可以有多种方法获得相同的结果。
我认为最好的方法是添加一个正则表达式,其中 :
作为 DATE
和数字之间的中缀。如果这在其他情况下不会造成任何副作用,您也可以同时添加 DATE
和 :
作为前缀,这可能稍微容易一些,因为您只需将项目添加到 TOKENIZER_PREFIXES
无需编写任何正则表达式。