words_descriptor.py
1 from typing import List 2 3 from evidently.legacy.features import words_feature 4 from evidently.legacy.features.generated_features import FeatureDescriptor 5 from evidently.legacy.features.generated_features import GeneratedFeature 6 7 8 class ExcludesWords(FeatureDescriptor): 9 class Config: 10 type_alias = "evidently:descriptor:ExcludesWords" 11 12 words_list: List[str] 13 mode: str = "all" 14 lemmatize: bool = True 15 16 def feature(self, column_name: str) -> GeneratedFeature: 17 return words_feature.ExcludesWords( 18 column_name, 19 self.words_list, 20 self.mode, 21 self.lemmatize, 22 self.display_name, 23 ) 24 25 26 class IncludesWords(FeatureDescriptor): 27 class Config: 28 type_alias = "evidently:descriptor:IncludesWords" 29 30 words_list: List[str] 31 mode: str = "any" 32 lemmatize: bool = True 33 34 def feature(self, column_name: str) -> GeneratedFeature: 35 return words_feature.IncludesWords( 36 column_name, 37 self.words_list, 38 self.mode, 39 self.lemmatize, 40 self.display_name, 41 ) 42 43 44 class WordMatch(FeatureDescriptor): 45 class Config: 46 type_alias = "evidently:descriptor:WordMatch" 47 48 with_column: str 49 mode: str = "any" 50 lemmatize: bool = True 51 52 def feature(self, column_name: str) -> GeneratedFeature: 53 return words_feature.WordMatch( 54 columns=[column_name, self.with_column], 55 mode=self.mode, 56 lemmatize=self.lemmatize, 57 display_name=self.display_name, 58 ) 59 60 61 class WordNoMatch(FeatureDescriptor): 62 class Config: 63 type_alias = "evidently:descriptor:WordNoMatch" 64 65 with_column: str 66 mode: str = "any" 67 lemmatize: bool = True 68 69 def feature(self, column_name: str) -> GeneratedFeature: 70 return words_feature.WordNoMatch( 71 columns=[column_name, self.with_column], 72 mode=self.mode, 73 lemmatize=self.lemmatize, 74 display_name=self.display_name, 75 )