[docs]classFeatureDict(dict[str,Union[str,bool]]):"""文節,基本句,形態素の素性情報を表すクラス."""IGNORE_TAG_PREFIXES:ClassVar[set[str]]={"rel ","memo "}_FEATURE_KEY_PAT:ClassVar[re.Pattern]=re.compile(r"(?P<key>([^:\"]|\"[^\"]*?\")+?)")_FEATURE_VALUE_PAT:ClassVar[re.Pattern]=re.compile(r"(?P<value>([^>\\]|\\>?)+)")PAT:ClassVar[re.Pattern]=re.compile(rf"(?P<feats>(<{_FEATURE_KEY_PAT.pattern}(:{_FEATURE_VALUE_PAT.pattern})?>)*)")FEATURE_PAT:ClassVar[re.Pattern]=re.compile(rf"<(?!({'|'.join(IGNORE_TAG_PREFIXES)})){_FEATURE_KEY_PAT.pattern}(:{_FEATURE_VALUE_PAT.pattern})?>")def__setitem__(self,key:str,value:Union[str,bool])->None:ifkey=="rel":logger.warning(f"Adding 'rel' to {self.__class__.__name__} is not supported and was ignored. Instead, add a RelTag "f"object to BasePhrase.rel_tags and call Document.reparse().")returnifkey=="memo":logger.warning(f"Adding 'memo' to {self.__class__.__name__} is not supported and was ignored. Instead, set a MemoTag "f"object to BasePhrase.memo_tag.")returnsuper().__setitem__(key,value)