我正在尝试为自然语言解析器返回的词性标签和其他标签创建一个有区别的联合。
在 C#/Java 中通常使用字符串或枚举来表示它们,但在 F# 中区分联合似乎更合适,因为它们是不同的只读值。
在语言参考中,我发现这个符号
``...``
可以用来分隔关键字/保留词。这适用于
type ArgumentType =
| A0 // subject
| A1 // indirect object
| A2 // direct object
| A3 //
| A4 //
| A5 //
| AA //
| ``AM-ADV``
但是,标签包含像 $ 这样的符号,例如
type PosTag =
| CC // Coordinating conjunction
| CD // Cardinal Number
| DT // Determiner
| EX // Existential there
| FW // Foreign Word
| IN // Preposision or subordinating conjunction
| JJ // Adjective
| JJR // Adjective, comparative
| JJS // Adjective, superlative
| LS // List Item Marker
| MD // Modal
| NN // Noun, singular or mass
| NNP // Proper Noun, singular
| NNPS // Proper Noun, plural
| NNS // Noun, plural
| PDT // Predeterminer
| POS // Possessive Ending
| PRP // Personal Pronoun
| PRP$ //$ Possessive Pronoun
| RB // Adverb
| RBR // Adverb, comparative
| RBS // Adverb, superlative
| RP // Particle
| SYM // Symbol
| TO // to
| UH // Interjection
| VB // Verb, base form
| VBD // Verb, past tense
| VBG // Verb, gerund or persent participle
| VBN // Verb, past participle
| VBP // Verb, non-3rd person singular present
| VBZ // Verb, 3rd person singular present
| WDT // Wh-determiner
| WP // Wh-pronoun
| WP$ //$ Possessive wh-pronoun
| WRB // Wh-adverb
| ``#``
| ``$``
| ``''``
| ``(``
| ``)``
| ``,``
| ``.``
| ``:``
| `` //not sure how to escape/delimit this
``...``
不适用于 WP$ 或 (
另外,我有一个有趣的问题,解析器返回 `` 作为一个有意义的符号,所以我也需要转义它。
有没有其他方法可以做到这一点,或者这是不可能的歧视工会?
现在我遇到了类似的错误
- 无效的命名空间、模块、类型或联合案例名称
- 可区分的联合案例和异常标签必须是大写标识符
我想我可以以某种方式覆盖这些愚蠢的情况下的 toString 并用一些等效的字母数字替换符号?