Many writing quality and style detectors need to distinguish between abstract and concrete noun usage. For example, the difference between verb highlight when used figuratively ("highlights the importance of X") vs used literally ("highlights the text", "highlights them"). The only reliable signal is whether the object noun is abstract or concrete, something the current tag set doesn't expose.
The fix would be to add an #AbstractNoun tag (and optionally #ConcreteNoun) to the two-tier POS tagger, covering nouns that represent concepts, states, qualities, or relationships rather than physical objects or entities.
This would enable patterns like:
doc.match('highlight+ the #AbstractNoun')
// → fires on: "highlights the importance", "highlighted the need", "highlighting the complexity"
// → silent on: "highlights the text", "highlights the selection", "highlighted the code"
Example #AbstractNouns
importance, significance, urgency, need, role, value, impact, complexity, tension, severity
Example #ConcreteNouns
text, file, button, word, selection, match, result
WordNet distinguishes concrete vs abstract via the [noun.cognition], [noun.attribute], and [noun.state] synset categories. A curated lexicon seeded from WordNet's abstract synsets would cover the most common cases without requiring inference.
Many writing quality and style detectors need to distinguish between abstract and concrete noun usage. For example, the difference between verb highlight when used figuratively ("highlights the importance of X") vs used literally ("highlights the text", "highlights them"). The only reliable signal is whether the object noun is abstract or concrete, something the current tag set doesn't expose.
The fix would be to add an #AbstractNoun tag (and optionally #ConcreteNoun) to the two-tier POS tagger, covering nouns that represent concepts, states, qualities, or relationships rather than physical objects or entities.
This would enable patterns like:
doc.match('highlight+ the #AbstractNoun')
// → fires on: "highlights the importance", "highlighted the need", "highlighting the complexity"
// → silent on: "highlights the text", "highlights the selection", "highlighted the code"
Example #AbstractNouns
importance, significance, urgency, need, role, value, impact, complexity, tension, severity
Example #ConcreteNouns
text, file, button, word, selection, match, result
WordNet distinguishes concrete vs abstract via the [noun.cognition], [noun.attribute], and [noun.state] synset categories. A curated lexicon seeded from WordNet's abstract synsets would cover the most common cases without requiring inference.