Comments (4)
hey, yep that's right - compromise is tokenizing punctuation into pre-text
, and post-text
, and has some opinions on what term a punctuation should be on, or if it should hang on the left or the right of a term.
There's also the guesswork in .text()
if it should print leading or trailing punctuation - sometimes it should and sometimes it shouldn't, and it decides based on how chopped-up the match is. I think that's what's happening in Ned Flanders examples.
That being said, this does appear to be a bug:
nlp('this is (kinda) messy').not('this').parentheses()
I'll take a look at all of these, if I can, today.
cheers
from compromise.
fixed in 14.12.0
nlp('this is (kinda) messy').not('this').parentheses() //'(kinda)'
cheers
from compromise.
I noticed this happens too.
Seems to be when not()
is omitting text that occurs before punctuation. For me this has manifested when I pair not()
with parentheses()
.
// Works as expected
> nlp('this is (kinda) messy').not('messy').parentheses().out('array')
[ '(kinda)' ]
// No results for parentheses()
> nlp('this is (kinda) messy').not('this').parentheses().out('array')
[]
// Multiple terms in parentheses are lost
> nlp('this is (kinda really) messy').not('this').parentheses().out('array')
[ '(kinda' ]
from compromise.
hey @Fdawgs - you may want to try .remove()
which mutates the document, instead of .not()
, which just changes the current match. It's a subtle difference, but .remove()
will do some of the things you seek, regarding repairing sentence-punctuation, and things:
const text3 = 'The leftorium sells left-handed products, the owner is Ned Flanders!'
const result3 = nlp(text3).remove('Ned Flanders').text()
console.log(result3)
//The leftorium sells left-handed products, the owner is!
Please let me know if you spot .remove()
mangling punctuation in unexpected ways. I don't think it's been tested very well. It would be fun to improve.
@track0x1 fix is on dev, will be part of next release, likely this week.
cheers
from compromise.
Related Issues (20)
- Apostrophe "s" disambiguation issue with search query style sentences HOT 7
- Query: Does Compromise.js compile RegExes from match-syntax? HOT 1
- Get .terms() but keep hyphenated strings (similar to .hyphenated() ) HOT 1
- Using .freeze() in nlp.plugin()? HOT 11
- JSON Speed HOT 2
- Tagging mixed number as #Value HOT 5
- Feature request: Logical operations in match HOT 2
- [Issue]: Various common nouns tagged as proper noun. HOT 6
- True Casing HOT 10
- [Improvements]: Add .toLowerCase() API to various functions. HOT 1
- [Issue]: Gov Rule & Possible Other's Needs Improved. HOT 5
- [Issue]: "My favorite time of the year" in .nouns() response HOT 3
- `.prepend()` removes frozen tags for acronyms HOT 2
- Improve TypeScript DX by reducing usage of "any" HOT 1
- NFD form combining characters not picked up as part of word HOT 3
- Feature: .slashes() tokenize transform HOT 6
- Geedy tag matching and punctuation HOT 2
- [Feature Request]: Flesch–Kincaid Function HOT 6
- "to" is a preposition and not a conjuction HOT 1
- Verb is mistakenly parsed as a noun. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compromise.