Comments (5)
Wow, good point. There is nothing wrong with the grammar, but in the way I represent the grammar to efficiently calculate probabilities. It's been a while, I hope I still understand it enough to investigate.
from java-probabilistic-earley-parser.
I suspect it's just for the edge case of this minimal, almost trivial example. Investiginating now.
from java-probabilistic-earley-parser.
Confirmed: happens for edge cases where p=1.0 and matrix is indeed singular. Shouldn't be hard to fix.
from java-probabilistic-earley-parser.
@digitalheir Awesome! Thanks for mentioning what the problem was. I tried having a look at the code just out of curiosity, but since I familiar only with CYK and not Earley parser, I could not really understand what was happening except that there is a matrix somewhere which has a 0 determinant.
from java-probabilistic-earley-parser.
I've been silly. Of course we get strange results if the program assigns P=1.0 to each rule by default. I had the idea to normalize the probabilities as above example yields P(A)=1+1=2, an illegal probability. So should normalize to [0.5, 0.5] so that P(A)=1.0. I never got around to implementing it and have acted as if it's no problem.
Easier fix than I had thought!
from java-probabilistic-earley-parser.
Related Issues (13)
- allow callbacks after predicting, scanning and completing
- Example of drawing a parse tree when using JPEP as a library? HOT 1
- Question regarding grammar HOT 2
- Writing cf-gammars without probabilities HOT 2
- Do not allow malformed grammars
- implement inside-outside algorithm for estimating rule probabilities
- investigate parallelization gains HOT 2
- ERROR CHECKING IMPLEMENTATION HOT 31
- Implement ε-rules (empty rules) HOT 2
- EXAMPLE PROJECT HOT 10
- Allow regular expressions to describe tokens in .cfg files HOT 1
- Error: "The method parse(Path, Charset) is undefined for the type Grammar" HOT 1
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 java-probabilistic-earley-parser.