mazko / jssnowball Goto Github PK
View Code? Open in Web Editor NEWJavaScript Snowball Stemmers
License: BSD 3-Clause "New" or "Revised" License
JavaScript Snowball Stemmers
License: BSD 3-Clause "New" or "Revised" License
When running command make esjava
I am getting the following warning:
$ make esjava
sed 's/\\u/\\\\u/g' js_snowball/lib/snowball.es6 | \
babel \
--compact=false \
--presets es2015 \
--plugins transform-es2015-modules-umd --module-id snowballFactory | \
sed 's/\\\\u/\\u/g' > js_snowball/lib/snowball.babel.js
You have mistakenly installed the `babel` package, which is a no-op in Babel 6.
Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.
npm uninstall babel
npm install --save-dev babel-cli
See http://babeljs.io/docs/usage/cli/ for setup instructions.
I managed to get es5 output using following steps:
$ npm install -save-dev babel-cli
$ npx babel --compact=false --presets es2015 --plugins transform-es2015-modules-umd --module-id snowballFactory js_snowball/lib/snowball.es6 --out-file js_snowball/lib/snowball.babel.js
Btw, comparing your and mine snowball.babel.js
there is missing the first line in my output:
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
This function is used in _possibleConstructorReturn
and _inherits functions
while in my output simple typeof is used instead there.
Comparing original ES6 output (https://github.com/mazko/jssnowball/raw/master/js_snowball/lib/snowball.es6) with mine generated via GNUmakefile I can see crucial differences in eq_s
and eq_s_b
methods, see s.length
vs. s.length()
in the following example:
original:
key: 'eq_s$esjava$1',
value: function eq_s$esjava$1(s) {
if (this.limit - this.cursor < s.length) return false;
var i = void 0;
for (i = 0; i !== s.length; i++) {
if (this.current.charAt(this.cursor + i) !== s.charCodeAt(i)) return false;
}
this.cursor += s.length;
return true;
}
mine:
key: 'eq_s$esjava$1',
value: function eq_s$esjava$1(s) {
if (this.limit - this.cursor < s.length()) return false;
var i = void 0;
for (i = 0; i !== s.length(); i++) {
if (this.current.charAt(this.cursor + i) !== s.charAt(i)) return false;
}
this.cursor += s.length();
return true;
}
That mine (babelized) returns a TypeError: s.length is not a function
.
It gets fixed when using s.length
instead. Am I supposed to modify final es6/es5 code? It is not mentioned in Readme.md file. Or is it ESJava regression?
I am trying to rebuild jssnowball, but its failing for me:
$ make esjava
public class arabicStemmer extends org.tartarus.snowball.SnowballStemmer {
public class armenianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class basqueStemmer extends org.tartarus.snowball.SnowballStemmer {
public class catalanStemmer extends org.tartarus.snowball.SnowballStemmer {
public class czechStemmer extends org.tartarus.snowball.SnowballStemmer {
public class danishStemmer extends org.tartarus.snowball.SnowballStemmer {
private java.lang.StringBuilder S_ch = new java.lang.StringBuilder();
public class dutchStemmer extends org.tartarus.snowball.SnowballStemmer {
public class englishStemmer extends org.tartarus.snowball.SnowballStemmer {
public class finnishStemmer extends org.tartarus.snowball.SnowballStemmer {
private java.lang.StringBuilder S_x = new java.lang.StringBuilder();
public class frenchStemmer extends org.tartarus.snowball.SnowballStemmer {
public class germanStemmer extends org.tartarus.snowball.SnowballStemmer {
public class hungarianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class irishStemmer extends org.tartarus.snowball.SnowballStemmer {
public class italianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class norwegianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class porterStemmer extends org.tartarus.snowball.SnowballStemmer {
public class portugueseStemmer extends org.tartarus.snowball.SnowballStemmer {
public class romanianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class russianStemmer extends org.tartarus.snowball.SnowballStemmer {
public class sloveneStemmer extends org.tartarus.snowball.SnowballStemmer {
public class spanishStemmer extends org.tartarus.snowball.SnowballStemmer {
public class swedishStemmer extends org.tartarus.snowball.SnowballStemmer {
public class tamilStemmer extends org.tartarus.snowball.SnowballStemmer {
public class turkishStemmer extends org.tartarus.snowball.SnowballStemmer {
make: *** [js_snowball/lib/snowball.es6] Error 42
The only step I didnt do is the next because I didnt understand it, what are the restrictions that we should deal with them?
ESJava has some restrictions like reflection e.t.c. You have to refactor manually such *.java sources too
I recently made an Arabic stemmer for snowball, its merged into the repo of snowball and xapian. Could you include it in jssnowball or guide me how to do it.
Hello, I'm trying to build the javascript files for the English language only, since the existing npm module (snowball-stemmers) is too large and I only need it for English. (It would be nice if the npm module had separate submodules for each language so they could be imported separately.) Can you help me with this?
I edited the GNUMakefile to only have the english algorithm, and followed the steps in the readme, but I'm getting the error
$ make esjava
package org.tartarus.snowball;
package org.tartarus.snowball;
package org.tartarus.snowball;
import java.lang.reflect.Method;
package org.tartarus.snowball;
import java.lang.reflect.InvocationTargetException;
package org.tartarus.snowball;
import java.lang.reflect.InvocationTargetException;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
import org.tartarus.snowball.StringBuilder;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
public class englishStemmer extends org.tartarus.snowball.SnowballStemmer {
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
import org.tartarus.snowball.StringBuilder;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballStemmer;
make: *** [js_snowball/lib/snowball.es6] Error 42
Hi,
I don't find the license, either at the root of the repository, or in the files.
Could you add one please ?
Thank you.
Manuel
Hi,
snowball looks very promising.
Is there any chance of creating hebrew stemmer, it should be similar to the arabic one.
Thanks!
Unfortunately the repository and also the source code files do not include a copyright or license statements.
Can I use this in my project?
Thanks in advance for your support.
Regards,
Matt
I get this when I run 'make bundle' on OSX -- can you clarify what is expected here?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.