{"_id":"wordpos","_rev":"85-508f62f431384a43830a60127c4982bb","name":"wordpos","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","dist-tags":{"latest":"2.1.0","beta":"2.0.0-beta.14"},"versions":{"0.1.1":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.1","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.4.10"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./wordpos.js","_npmUser":{"name":"moos","email":"mooster@42at.com"},"_id":"wordpos@0.1.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"d8a690c6dc31061e1bff1b0ac59b49323c71ee39","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.1.tgz","integrity":"sha512-FQgz3ee2EBUAipc5tcAXy3ZzGdUxwMKFz7FjJkYAXl6SNspRj2SswYAQLUAl34jtS/3KTEClMILtBR+/vvtGQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGkbtAYeEqJz6osbIvjCfBjkwUeLPLjP1ml7yWjj8Il9AiAEPTsk0Rd9dNngNdRy+yIinVnOi1Z4QtYhHWx8OC4ZnQ=="}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.4":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.4","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.4.10"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"_npmUser":{"name":"moos","email":"mooster@42at.com"},"_id":"wordpos@0.1.4","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"24a8e65b66a120bc48867b78e1a92b380dcd6b86","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.4.tgz","integrity":"sha512-++IRDqgG7WVT/4EYsYqT18Vi6dHhmIzF5ARMJXys3rONJqo0eHtS+KVWDu4vOOtge1ZT0r4W6s5JtNDscXyUdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCb6Exlc+9VjI0LHNmTtsPYeHRwwS8XfqiV9TlW27B3cwIhAPvMwDmSErBIR5C4ee26bWXScKe88tWv949o4bXmwdUp"}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.5":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.5","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.4.10"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"_npmUser":{"name":"moos","email":"mooster@42at.com"},"_id":"wordpos@0.1.5","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"7a539accd3e1a0bef4145192e31022e1e009b98e","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.5.tgz","integrity":"sha512-jRb8rdaN1sZo41bqr0S1blFnuntw+h5x7Y915QGoVHHie4PWszE1P/szw+MTTDtxhkwlrfkiOBKCGcE8anjf7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMEK4aGC5Ch8kXXI4liR8MfDeKSfSM42gLBLlTFOoLLgIhAJz3rKV+GHOqvkgmYUMQSJKPP4LN4a6b27/QQvI418z2"}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.6":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.6","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest","commander":"latest"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"_npmUser":{"name":"moos","email":"mooster@42at.com"},"_id":"wordpos@0.1.6","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"6e05cb0c8a942cdf754856f9e4e4efe2c56b3f64","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.6.tgz","integrity":"sha512-tn1kZ/O3VfKpP8/dx/oEZ8QE5wCrcOOcdaYSQDuK3ZQy5z1M3MSpbAhxdJFyTZ1OuMdyJdF81X+8we61TkK62A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFC0135HiI7yUNjI/yx8BKK19qGPVgmkWihj+yJHVzUAiBxM0q+8USP4vgSf9SPDpH/5CU8a76GcEawzfaIsb1U1Q=="}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.7":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.7","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"_id":"wordpos@0.1.7","dist":{"shasum":"0830a101afc9ee30bd31a418f8e301b4c3668ec7","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.7.tgz","integrity":"sha512-7xwwdGTqOxgfUafR1igRBAT5iARusktC3MuZr782OHaGQqqG6mY2UJtDFOFma5kmXLl27fUomingd02URPblvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkyO0ttYpcrKXKkiT7EL/ELWklDcud0sN3EvjnYz+SJwIhANkZ8k5aw22sY1cc4tBjVfKQviAvpYCEXyMt1qlBqlhD"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.8":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.8","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"_id":"wordpos@0.1.8","dist":{"shasum":"cedba129741a660ab9499e0e90ca45ca36d550f0","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.8.tgz","integrity":"sha512-gYYn2sE4ct32gycJSZq4rP71tnt6g7JrHBZ2F+cQZRCHs4NtPin04ApzvqwlVDV4eh/hah2QL7+irZYqIpzF3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBXGRLyrEGfFsh5X1hRnmOE5KDbUICzL0fe4xwbzYTvpAiEA1qdXPvLy5abhJN7WLzHkMGunKS/R/3l5NIDNSN2As5M="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.9":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","pos"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.9","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"latest","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.9","dist":{"shasum":"6fc964536eb681901f724e7157aa5c83a10107c9","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.9.tgz","integrity":"sha512-NntyHjaxBdOyPDe22mTOGX2c3IPg9Edt08D7jsBi2d/8C5LwBnm4xlFfHkvLjkpyNQyPYG+XQZmnNgNI85Jh9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/mtxqrMdIsfU5tG3Ls5zlFExsVia5F2r8kUWlwsNmiQIhAMJRbQKPQ9bXuFezJXYkEfWArgmIBBR+RIyEbjNpmdZH"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.10":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.10","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.10","dist":{"shasum":"7d146c8b2125ab9ecbc0df57311e6a609d152b0d","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.10.tgz","integrity":"sha512-0zvjqOK83Jh1Hwht8iajPw6XLoEolHW8xaNQPvKSzn2lVpOLm6DuNdGqb9CJATiaPcdzrpY8PpKjr+HVTJEZvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDlB5TxT2eU9G3QquTAlOEe7THOyx+vQ+jK4yS4Lb/x3AiEA8WqWy04lHjmjK8IoqkmcG7D8sGGSSlF26bJwQJdg8hg="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.11":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.11","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"git://github.com/NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.11","dist":{"shasum":"36c7e56413593804f19dfb7dcc157dd64512d6d8","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.11.tgz","integrity":"sha512-OIXyusonXlJXE2N1uBCworZEJqHbzc/izYWxkXGRk+GFQEyGp/g+MHFXc6kSxyb2gnuF5ihA8ka3ThneGYa4ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF8sGQcLTzQmoa0f070uDZy979qHOu+xlstwwuKBEi/uAiEArj487netFSW25ThJyqGspOOW9DPPEN7bMAS0c8gaJ/o="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.12":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.12","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"git://github.com/NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.12","dist":{"shasum":"188263cd0cb07f9be9767661f2bce807493e8b60","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.12.tgz","integrity":"sha512-QvYjzBEwdzHx34P6xIKSTcKeh7cgdRYZ7bKpqzl/1ETiRuqBvscxJKVm2UiOIGazeN316bcY/FfWrofxRBaGXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN6dcIIcVGPYp+pblzFnwWfkwPMJlz+7p4aYN0XLZiqQIhAMg9xVGgjNrCiK7hHwFCVMZbBb342AWmkaZy8bBbnoil"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.13":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.13","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"git://github.com/NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.13","dist":{"shasum":"5b5f7a7735e6e62c168830d42108c76ef8a58ce6","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.13.tgz","integrity":"sha512-kQbEJ+Dn13r53ucbXoyEwmWJJ/fDQ+Rq8gCMKoapYkcW3UDe/SxLaavvoPwh6l+JHmW4hV49HzrQrTtHgqzQ5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGGkHd2fUsxU7wlD4Thi9/B1mMQybYQycVafacBEkqdvAiEA0AuATGHDNakWwtfhKvjShVE0hrcJ7OLbOAichytG2oo="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.14":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.14","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"git://github.com/NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.14","dist":{"shasum":"8d59771773780c9ebb9cee05259cce861ea098b5","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.14.tgz","integrity":"sha512-0LzVAMf5kxOgJQ8MfydtbwdFyEqv9hcWqB/PS0AoBOPZagQTs9gIz9NGh/OuQ87N4hTlXL6+2Mdg1xKWdYZI3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCruQhOgG97oyNZRBJUmQmX/NOyisxuBqKECpi9M5CKwQIgXMvgMfHBLGHA2vLgz4RJZfV3yGlSugPwBLghYFKxMUc="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.15":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.15","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"git://github.com/NaturalNode/natural","underscore":">=1.3.1","WNdb":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun"},"bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.15","dist":{"shasum":"07239e0a6dba19b2e693f5eaec767fc942301b50","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.15.tgz","integrity":"sha512-QkoSMah1AilDEFYAvxr68HSF7n9x9wDR53ch/Y0oNikNTFt2dGUnNVjaozv5ffICb4QHsbNrRLvMxBmm1XuaIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFXyB+A/GL9zVjgxSQMwdyaDbFCo85BMZ7PLV/JEF+sCAiBI1imbdWo0v/1+etsuovs8AaK4YrZeAWafz70S+e5EsQ=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"0.1.16":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using natural's WordNet module.","version":"0.1.16","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"natural":"~0.1","underscore":">=1.3.1","wordnet-db":"latest","commander":"1.1.1"},"devDependencies":{"uubench":"git://github.com/moos/uubench.git"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"jasmine-node spec/wordpos_spec.js spec/validate_spec.js --verbose"},"license":"MIT","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@0.1.16","dist":{"shasum":"4ee2a9c40415fef2bc7b19db6f5859801050ad31","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-0.1.16.tgz","integrity":"sha512-eqX8r/kfkrU72w5DA3xsrW9LSdUXRpu8tMbJR516FmiJ5RUmzsydI387qYvTqokdUZFoC3Gm5vBkdSctmAomQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcUo4412bvw2yBGVPLOZae1YgDxzXndL6Y4Gb187REYAIhAITEioVAw0H6CkC8xX+I1cKJ5sv7c2q4ftAQ+mI1H0/P"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{}},"1.0.0-RC1":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.0.0-RC1","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"4067fc291cd0cff5c955fc627ceadf67dcf36f6d","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.0.0-RC1","_shasum":"195e0ba5d08eb027a61b97b1a47ef0914e93b526","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"195e0ba5d08eb027a61b97b1a47ef0914e93b526","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.0.0-RC1.tgz","integrity":"sha512-D7KULUhWtisrHXZE7mvsgfby38cAz/O60rpjlO36ecbybkv1XE5ffDrJJvVdTgkYLP1XmP1u6mIVW4LHezUkGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC23Kh7DuTRO6F8GvxWfGi611nyeFaEiBQcdctyM7wmOgIhAMzNmJ01vCFptLVmnCangPszFDsA+7sRpBVU9KSXNfaI"}]},"directories":{}},"1.0.0":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.0.0","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"4067fc291cd0cff5c955fc627ceadf67dcf36f6d","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.0.0","_shasum":"94bf48d16c2642938d15d6945e58e866b3553d13","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"94bf48d16c2642938d15d6945e58e866b3553d13","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.0.0.tgz","integrity":"sha512-whZ8hcrKX0bb3SKaZp86s7gUkZLvK2GIw4EdXbJmQ3XI/hsYS2rE0OuS1MSFx7J8IfUOat9PeByNa0rCZR+O7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHx6EA1PaojdW+WZeYPvllntqWzsnBaJQTiwB5AC11cACIAx1ZkScv+vkzaPDKGnNjMbrtIORavPs4aUNIXaIrmWo"}]},"directories":{}},"1.0.1":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.0.1","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"c69e74235aec8fd9f543f63b81cd573fca5ebe0c","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.0.1","_shasum":"a0990af58e09f0b270dda7d507021e09830fcc59","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"a0990af58e09f0b270dda7d507021e09830fcc59","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.0.1.tgz","integrity":"sha512-c3/mNuvwTogMrqHUO2F2qLi/ElljqPk/3yT+PZ6t07qT67+TmnwmWQeoz23G43N7em/QZ7zJRiL9XQ8/MFPJNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuux7MRjp9m6G8e2DiDvEsk1Q/0LEi7ey+FhxShrV23wIhALF8pJy4zsWiky7Ai8Q+AMNU4BC/T6kvpmyd42NnGj5t"}]},"directories":{}},"1.1.0":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.1.0","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"d2cbcecf2abb7a4a4dcdea1ae6ffceb121617eae","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.0","_shasum":"14cab763f215a3c03b0379fdf6593cd4be44290e","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"14cab763f215a3c03b0379fdf6593cd4be44290e","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.0.tgz","integrity":"sha512-8Rh1s48paJ+vQAOsoWIxTdhDMZX9tQPGDbXueUorE5BUhBPrMq0cD46hH53El2MJ2OJwCjh+wJ1DWqHtf+bhyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGHfFjd3Eu80R7euXdNQrbOlKrlG3R5z/Nwo0E+3C67KAiAEn8gHNCllaL5LXXlgzjai/B7TfEJLBJN5+sEwZ/gWZQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/wordpos-1.1.0.tgz_1460235236845_0.12031479156576097"},"directories":{}},"1.1.1":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.1.1","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"220473102ebee90a6c21325d4ff671b85d97e02c","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.1","_shasum":"3c4240345c9da8744d1274b6baeeefc5ee95332d","_from":".","_npmVersion":"3.10.6","_nodeVersion":"7.3.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"3c4240345c9da8744d1274b6baeeefc5ee95332d","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.1.tgz","integrity":"sha512-uBV4W4elehoftKXGdx65o0ZDEho3wtZ7Cz5tE3kT0+vP+L8M189bNFkj+a+dc62tyhdT9SO2SR4z35dc2N+s6A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBn8vn47AfYzJkkIEpqhGWRme1Ma7Q4uBHx5aU00c6gZAiEAh5cxzl/0clr44Y1aT82CaZvWX6B1baqWqLEBZPKDS5g="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/wordpos-1.1.1.tgz_1482439712585_0.24580906028859317"},"directories":{}},"1.1.2":{"name":"wordpos","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","version":"1.1.2","homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"220473102ebee90a6c21325d4ff671b85d97e02c","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.2","_shasum":"a725000db0a38b5b6aea2dd492ae707b96789fc8","_from":".","_npmVersion":"3.10.6","_nodeVersion":"7.3.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"shasum":"a725000db0a38b5b6aea2dd492ae707b96789fc8","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.2.tgz","integrity":"sha512-NwwYpCax6qv6y8+7U7fLTLgq6dfHQyu0aFKIiD7gc9f5D68IfV+hM5H50Bjy+hCpsBKH/QhdNp6S/vbxdjDU3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCFi/boc7aVKvzfD4CmTtRKWNfwnR/z1gSd/qI3XBjbAiEAj1nPq+lssRvPWi/PK6WwKmjohFk+46oXHC41Fow4zR4="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/wordpos-1.1.2.tgz_1482686144347_0.5303200311027467"},"directories":{}},"1.1.3":{"name":"wordpos","version":"1.1.3","description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"latest"},"devDependencies":{"mini-bench":"^1.0.0","chai":"*","mocha":"*"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"3c88deba7f00b2b9a25c4c12d1d1608b9c34f09b","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.3","_npmVersion":"5.0.3","_nodeVersion":"6.5.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-EkP2HdV0aKHOssNeu6jayfAH0W11xpAbrJj1xUxHMj+qqGgQmYaceMp2zNhcoJf+85x/WyfALiLBx/lkb37U+g==","shasum":"7fd4d4f6c4bb0279531bee3b14e821165288028e","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9fHYlIqx5FobwV68+PRy30HkgDY06xcNMbQ+HA73L5QIgbnldA4v861pLxZyWWU9djJZoA3Js3wibmbKFsNqEByo="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos-1.1.3.tgz_1497284572029_0.1651775233913213"},"directories":{}},"1.1.4":{"name":"wordpos","version":"1.1.4","description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"^3.1.5"},"devDependencies":{"chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^3.4.2"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"205216ee2e7461603387590a63b9bcc91e02076f","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.4","_npmVersion":"5.0.3","_nodeVersion":"6.5.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-4bc8c/d2fYL5rz9zdNfEaEABOwc7my3gT0xQd9KyyHODETHuaHctFdLk9kSFLUP8udjRHS+TCentmIczOeJCFg==","shasum":"ab36f374cb6d4877284af70fc4d949fceb327208","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB9Fh8sLsn+VTCnzJsYpjA5UJrNepqOaCVz8/U4BvQNVAiEA5mp+ve62T41BbtUtBpEjD9Op8d88O3wkg6ms5ZtNSAs="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos-1.1.4.tgz_1497285843987_0.23344553634524345"},"directories":{}},"1.1.5":{"name":"wordpos","version":"1.1.5","description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"^3.1.6"},"devDependencies":{"chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^3.4.2"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"f2e2bd3015b5fc3e1e1fea57f99357290c2a168a","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.5","_shasum":"1735c88c08466f05297358e28f725412240ccef7","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.3.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"dist":{"shasum":"1735c88c08466f05297358e28f725412240ccef7","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.5.tgz","integrity":"sha512-TsUi1Nb2M8YnJFBOsoRVv92iPs2b1luWBiL5EG7UL2phMrMXwtxcLK3se/SBrkH11CSyedH/PjICWXwWnY6EDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHARZ3SyWamPiJR6Oy8J1x8MdggyFWGrvkQbfjWA5mqxAiAMyUPAr8cFLCLtlMlLpDWzRdntiL8N8bhOtLBAoS7+uA=="}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos-1.1.5.tgz_1497298504195_0.21901712170802057"},"directories":{}},"1.1.6":{"name":"wordpos","version":"1.1.6","description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=0.12"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"^3.1.6"},"devDependencies":{"chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^3.4.2"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"4c10324d64557169484ed712070113e4fceff10b","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.1.6","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-+jlB/Iu0hhkxw5AwugdOPxod0g0CJSQOWItkUYuMZpKEpBWJ1DZcoa8n8cmDAn9mTXo8n9ZT516NAgE8SZPkRw==","shasum":"342817d7a9fddda7c71ac4e7757363508258df90","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.1.6.tgz","fileCount":22,"unpackedSize":110173,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHnBEAh01g8KfB9sYjKVixQWP7I6nUKkrohAZNeE7EjAIhAPPgv4n6RemSdqD/4KCjyCbJIDVny6JV9PHYRZRbTjl1"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_1.1.6_1520193931373_0.9229742094727711"},"_hasShrinkwrap":false},"1.2.0":{"name":"wordpos","version":"1.2.0","description":"wordpos is a set of part-of-speech utilities for Node.js using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=4"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","underscore":">=1.3.1","wordnet-db":"^3.1.6"},"devDependencies":{"chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/wordpos.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","test":"mocha test"},"license":"MIT","gitHead":"1c569b766774b08237fa6a2ab0fe56bedcd5f2fc","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@1.2.0","_npmVersion":"6.1.0","_nodeVersion":"9.5.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-3C0pdLnYIV962dyPEmi+QNJhI+RRz2lLY1QiCycUt2qhL8Dalv1huAngfePDmNJ1WHdSAT/fjbDqtbu1KfguCw==","shasum":"599bb13cad5342a77175a4df71dfbab1847cc1fe","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-1.2.0.tgz","fileCount":20,"unpackedSize":110505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjG9/CRA9TVsSAnZWagAArCoQAJbHJEiNlnVbv225UwCF\nRQVUPwpfaZjAp8E6Yvv5hHVxMxLnDsuPMLay+rX7rXfu4CkRSWLOqTXKXeGj\ncyps9Od0niidflEY/WXDvjG/cJuSuimxbLMY/9crfwhN2v+E+y/I33wAFpOO\nfJqdV0s4hOPgZL2N5lDmVcQj3RoWfP2qLWpkljIqY+nef3UhMhN8XdeycAfd\nbvf27UZr80NYJsXiwN9FOrzY3QfzelerZvJkI/BWVeVdn0YIyW8aKxs4+opc\nj/de7NRDM0hrzmaOQoh8lvEyRXhKIAUp0RFh1pb2BMOWon+Bm5S3g/j1GIv0\nj3vXiCjK1XSIc4tPLyvtABodcLLsqHV401sLhYLyOWA+Z8Z4I6yamicFN0N2\nmkRm65POYBumUxBOFx9xTs2mZg3ivBUq78aIfAEmMNR69L68tmaR2Ucg0CZY\njytJOsVeDc7q+IDGeqdlcfgfLv/1fVq87Adz6oqPu2G6weQrmNvKUGko4Alj\nf9dDJnx89lO4GOPwBfyU0Lv/In2ek2RRzoiIfL0ZDDm32OMRtI4isMcxJQ4c\n91O3tQd1ymUrVQxYYc8+BZmsb1xNFBoECFUXonzaqEFSwoGtUSd7K7GP8due\nf1fFnkIVt5JNWw8Gy+vN6d0LkWop/ZPcB/wxjvVzFRGik/BVfmcf2H2zG/XB\nmlKh\r\n=CY4Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFByzyezzYljKb2qb7WQUTEvp3XFjLZFNFQIWpCG7b1oAiBvPonj4orD2fSAoLPMOx4pT9p5V5oqAHXf7lryiUpZQg=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_1.2.0_1535930238322_0.36300667730973735"},"_hasShrinkwrap":false},"2.0.0-beta":{"name":"wordpos","version":"2.0.0-beta","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","symlink-dir":"1.1.3","underscore":">=1.3.1","wordnet-db":"^3.1.6"},"devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-decorators":"^7.0.0","@babel/plugin-proposal-do-expressions":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-export-namespace-from":"^7.0.0","@babel/plugin-proposal-function-sent":"^7.0.0","@babel/plugin-proposal-json-strings":"^7.0.0","@babel/plugin-proposal-logical-assignment-operators":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-numeric-separator":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-proposal-pipeline-operator":"^7.0.0","@babel/plugin-proposal-throw-expressions":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-import-meta":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-dynamic-import-node":"^2.2.0","chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"npm run postinstall-web && npm run postinstall-node","postinstall-node":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","postinstall-web":"node scripts/makeJsonDict.js index data","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register","prestart":"symlink-dir dict samples/self-hosted/dict","start":"npm run build && http-server","prestart-dev":"rm -rf build && mkdir build && symlink-dir dict build/dict && cp samples/self-hosted/main.js build/main.txt","start-dev":"npm run start-self -- -d build","start-self":"parcel samples/self-hosted/index.html","start-cdn":"parcel samples/cdn/index.html"},"license":"MIT","gitHead":"8a3d7efa142250325ce714b611d3e14b6a35c5a7","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"dist":{"integrity":"sha512-GOO+11ybDJMEAZcHzNyqDtFYP+jC+8U0wuIhbwNRIrtUD0OCyr0uJ/C/YhjuZgfu7u+qoKzBttUQsYAFIGas7A==","shasum":"7c574907117b71b35567fab0d97fe828f4cd5f2f","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.tgz","fileCount":46,"unpackedSize":57690984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6GN0CRA9TVsSAnZWagAAurcP/0Fr7/YJWl5amqsTXCiv\nKForPB/06ZMzPNVYBYzsbonGQDqooXqW0cWsp5hQLO0uJToCJOV7ctYFZeVn\ncC6khZuepX//XzFU2IA99XnlqvedsiWyZkCd+SYRAU7MXfq6xqmJLNQdvIEI\nds1rpLtVwVEbzZGPgMv3GygQNITlC9Tc/t2wOpKRvEa+C7Di4w6H2l3vFQwj\npubVoRCuF17CLrUUiEuZ413VrUpj7hB9mBLldI4xbGdKnKMWYh0f2SXM7Oru\niNZ6b0rxLWlwhU6PByuapTyGERrM4MAzxQYjaj5bqsNF9q8QrU7+POKvV1wF\nraDjNByJ8Mpq0kk0RxhA5LljK9dkKZDH8E65s+4RUHApQTQ1pPoRiHv5EK5g\niiNYmEvG/W8xiA27gWHaq3OEpTAl6rCQLkXHliStKmBqxXKkt0M7PF9lxgbw\nBXa1S9MJbcu2bAFDuAzsmEdGp8+wFL/ZHJBmy1wpNK29LSuIJBMmI3RjZzJd\n/YY6l/JOrNENem48XaDL826Fa02GDJNgoWW5rbG5qJd+r0aNxvnJDYJoLq57\n8BKxMvmDEBBGUf49OE7qTjSZft9K9yK9DanSc2idAjCTL9R9R/OOTKBqBVYv\nQgapGEroj+3gWiMM51NVAHwC28J2trmWfbrxOE7BuOP9TwVhE4HEj5zJmttS\ndjci\r\n=IgMl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs1Glz3xprj3tyIBzfAS2EyuN75vEGdy1eKn0I5KEPCAIgMJMS4NaFAzIulSP7WaCXNoVGxBrIE69Jf0W2n9rZbBE="}]},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta_1558733683163_0.48683122030961856"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"wordpos","version":"2.0.0-beta.1","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","symlink-dir":"1.1.3","underscore":">=1.3.1","wordnet-db":"^3.1.11"},"devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-decorators":"^7.0.0","@babel/plugin-proposal-do-expressions":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-export-namespace-from":"^7.0.0","@babel/plugin-proposal-function-sent":"^7.0.0","@babel/plugin-proposal-json-strings":"^7.0.0","@babel/plugin-proposal-logical-assignment-operators":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-numeric-separator":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-proposal-pipeline-operator":"^7.0.0","@babel/plugin-proposal-throw-expressions":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-import-meta":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-dynamic-import-node":"^2.2.0","chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"npm run postinstall-web && npm run postinstall-node","postinstall-node":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","postinstall-web":"node scripts/makeJsonDict.js index data","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register","prestart":"symlink-dir dict samples/self-hosted/dict","start":"npm run build && http-server","prestart-dev":"rm -rf build && mkdir build && symlink-dir dict build/dict && cp samples/main.js build/main.txt","start-dev":"npm run start-self -- -d build","start-self":"parcel samples/self-hosted/index.html","start-cdn":"parcel samples/cdn/index.html"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- see below for example.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,  // WIP\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers\r\n\r\nv2.0 introduces the capability of running wordpos in the browser.  The dictionary files are optimized for fast access (lookup by lemma), but they must be fetched, parsed and loaded into browser memory.  The files are loaded on-demand (unless the option `preload: true` is given).\r\n\r\nThe dict files can be served locally or from CDN (see [samples/cdn](samples/cdn/).).  Include the following scripts in your `index.html`:\r\n```html\r\n<script src=\"wordpos/dist/wordpos.min.js\"></script>\r\n<script>\r\n  let wordpos = new WordPOS({\r\n    // preload: true,\r\n    dictPath: '/wordpos/dict',\r\n    profile: true\r\n  });\r\n\r\n  wordpos.getAdverbs('this is is lately a likely tricky business this is')\r\n    .then(res => {\r\n      console.log(res); // [\"lately\", \"likely\"]\r\n    });\r\n</script>\r\n```\r\nAbove assumes wordpos is installed to the directory `./wordpos`.  `./wordpos/dict` holds the index and data WordNet files generated for the web in a postinstall script.\r\n\r\nSee [samples/self-hosted](samples/self-hosted/).\r\n\r\nTo run the samples locally, install [parcel](https://github.com/parcel-bundler/parcel) if you don't already have it (`npm i -g parcel`), then:\r\n```bash\r\n$ npm run start-self \r\nServer running at http://localhost:1234\r\n...\r\n \r\n$ npm run start-cdn\r\nServer running at http://localhost:1234\r\n...\r\n```\r\nand open your browser to that url.\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line: CLI\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## TODO\r\n- implement `includeData` option for preload\r\n\r\n\r\n## Changes\r\n\r\n**2.0.0**\r\n  - Support for running wordpos in browser (no breaking change for node environment)\r\n  - Dropped support for node 4.x.\r\n\r\n1.2.0\r\n - Fix `new Buffer()` deprecation warning.\r\n - Fix npm audit vulnerabilities\r\n\r\n1.1.6\r\n - Fix #25 rand().then with no args\r\n\r\n1.1.5\r\n - rollback 1.1.4 changes.  Fix is made in [wordnet-db](https://github.com/moos/wordnet-db).\r\n\r\n1.1.4\r\n - temporary fix for #19 issue with npm@5\r\n\r\n1.1.2\r\n - Fix DeprecationWarning for node 7.x (1.1.1)\r\n - Fix occasional error for large offsets during seek\r\n\r\n1.1.0\r\n - added seek() method\r\n - added lexName property\r\n\r\n1.0.1\r\n - Removed npm dependency on Natural.  Certain modules are included in /lib.\r\n - Add support for ES6 Promises.\r\n - Improved data file reads for up to **5x** performance increase compared to previous version.\r\n - Tests are now [mocha](https://mochajs.org/)-based with [chai](http://chaijs.com/) assert interface.\r\n\r\n0.1.16\r\n - Changed dependency to wordnet-db (renamed from WNdb)\r\n\r\n0.1.15\r\n- Added `syn` (synonym) and `exp` (example) CLI commands.\r\n- Fixed `rand` CLI command when no start word given.\r\n- Removed -N, --num CLI option.  Use `wordpos rand [N]` to get N random numbers.\r\n- Changed CLI option -s to -w (include stopwords).\r\n\r\n0.1.13\r\n- Fix crlf issue for command-line script\r\n\r\n0.1.12\r\n- fix stopwords not getting excluded when running with CLI\r\n- added 'stopwords' CLI *command* to show list of stopwords\r\n- CLI *option* --stopword now renamed to --withStopwords\r\n\r\n0.1.10\r\n- rand functionality added\r\n\r\n0.1.6\r\n- added command line tool\r\n\r\n0.1.4\r\n- added fast index\r\n\r\nLicense\r\n-------\r\n\r\n(The MIT License)\r\n\r\nCopyright (c) 2012-2019 mooster@42at.com\r\n","readmeFilename":"README.md","gitHead":"da44ac7c3597c1026fd9f742c45ecd8f1fadb3e1","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.1","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-jAS83afs76JzQsX+5X/SfEevasP0IS59W4U2OD02HaL8R7KscsFNszX2sNi+HI4jzS1YEzK+Uqrzo4XFl6iOWg==","shasum":"72b5335e34ebc102e9197a10292d3575fba14393","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.1.tgz","fileCount":42,"unpackedSize":28929266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc73EqCRA9TVsSAnZWagAAm3YQAJNHqhaLDFkVRVR8bBwP\nTJOKy2AvOoNl9sKixNU+mHaq+Jn228/ZiHhddEbCSJlntkx2jFvz/WUjWlbh\nMaMz2aNpovM6Nr8Ff0hlGOtsK1+t2rSbH9KxlxffxOfE/QcOZ2gizGFwvdm+\niC47WS4kIoOkoCuHCrGlOGVebyBDoggfH1h+EvYwQR119alMq4MR2q1ub4V+\n2Bdc/7pyF9rN+E7ugA7GM/jgp6Eb6FlwFz5ITq/ruzqzKHFAtc6jHNLPIRY2\nkXI4LR41aXsqgj6YaDpyr99HjqK1Y/Z36yQ8PE328HLoUg9OScUbmqz+Q4Wi\n0qslEZjA9QvQ+InkYpxCzchuYvw0q0JhHaPrVtdWba4BLmrA/j/hhVvLa+hg\nwPBac49Pi3xO1POXeJYrSBnlVWKNq/EITlJsqR9/CWtajSSLeVVhAVgD2+0c\nAvZVKegMjaeIAJn0R30UDSdEMuRFng30WI96QBF/0Bnhpp3mTvinx8tfBAoA\nQO4tMxbvzNM/WMGgWETJ/6oRCfxI9WWXjW/5vYienjxGBv9d448VQoPvrJXG\ntm+xQVDrOeUNfLDws1xYdVe2oNbyfEaGoxV34ORiHNla2yPApZELvEePnxbV\n6luNABw+X+JxnjXzS4qOXmMXkAJ6MmLPw8WdouQAvIej0YZQq/vUZS28l6sL\n2OSE\r\n=Nme9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2a8I9klOz+hVwncx2FF48si/GaOZLz5Ig9c2bgPVh6wIhAOuzwAVj1JegBHEf+cagTXwq39CWko0640rGJILLEXs5"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.1_1559195944486_0.9955858101658339"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"wordpos","version":"2.0.0-beta.2","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.0.0","symlink-dir":"1.1.3","underscore":">=1.3.1","wordnet-db":"^3.1.11"},"devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-decorators":"^7.0.0","@babel/plugin-proposal-do-expressions":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-export-namespace-from":"^7.0.0","@babel/plugin-proposal-function-sent":"^7.0.0","@babel/plugin-proposal-json-strings":"^7.0.0","@babel/plugin-proposal-logical-assignment-operators":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-numeric-separator":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-proposal-pipeline-operator":"^7.0.0","@babel/plugin-proposal-throw-expressions":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-import-meta":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-dynamic-import-node":"^2.2.0","chai":"^4.0.2","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"npm run postinstall-web && npm run postinstall-node","postinstall-node":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","postinstall-web":"node scripts/makeJsonDict.js index data","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register","prestart":"symlink-dir dict samples/self-hosted/dict","start":"npm run build && http-server","prestart-dev":"rm -rf build && mkdir build && symlink-dir dict build/dict && cp samples/main.js build/main.txt","start-dev":"npm run start-self -- -d build","start-self":"parcel samples/self-hosted/index.html","start-cdn":"parcel samples/cdn/index.html"},"license":"MIT","gitHead":"55319a6a15f95c32c37fed1899af48389d49c677","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- see below for example.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,  // WIP\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers\r\n\r\nv2.0 introduces the capability of running wordpos in the browser.  The dictionary files are optimized for fast access (lookup by lemma), but they must be fetched, parsed and loaded into browser memory.  The files are loaded on-demand (unless the option `preload: true` is given).\r\n\r\nThe dict files can be served locally or from CDN (see [samples/cdn](samples/cdn/).).  Include the following scripts in your `index.html`:\r\n```html\r\n<script src=\"wordpos/dist/wordpos.min.js\"></script>\r\n<script>\r\n  let wordpos = new WordPOS({\r\n    // preload: true,\r\n    dictPath: '/wordpos/dict',\r\n    profile: true\r\n  });\r\n\r\n  wordpos.getAdverbs('this is is lately a likely tricky business this is')\r\n    .then(res => {\r\n      console.log(res); // [\"lately\", \"likely\"]\r\n    });\r\n</script>\r\n```\r\nAbove assumes wordpos is installed to the directory `./wordpos`.  `./wordpos/dict` holds the index and data WordNet files generated for the web in a postinstall script.\r\n\r\nSee [samples/self-hosted](samples/self-hosted/).\r\n\r\nTo run the samples locally, install [parcel](https://github.com/parcel-bundler/parcel) if you don't already have it (`npm i -g parcel`), then:\r\n```bash\r\n$ npm run start-self \r\nServer running at http://localhost:1234\r\n...\r\n \r\n$ npm run start-cdn\r\nServer running at http://localhost:1234\r\n...\r\n```\r\nand open your browser to that url.\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line: CLI\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## TODO\r\n- implement `includeData` option for preload\r\n\r\n\r\n## Changes\r\n\r\n**2.0.0**\r\n  - Support for running wordpos in browser (no breaking change for node environment)\r\n  - Dropped support for node 4.x.\r\n\r\n1.2.0\r\n - Fix `new Buffer()` deprecation warning.\r\n - Fix npm audit vulnerabilities\r\n\r\n1.1.6\r\n - Fix #25 rand().then with no args\r\n\r\n1.1.5\r\n - rollback 1.1.4 changes.  Fix is made in [wordnet-db](https://github.com/moos/wordnet-db).\r\n\r\n1.1.4\r\n - temporary fix for #19 issue with npm@5\r\n\r\n1.1.2\r\n - Fix DeprecationWarning for node 7.x (1.1.1)\r\n - Fix occasional error for large offsets during seek\r\n\r\n1.1.0\r\n - added seek() method\r\n - added lexName property\r\n\r\n1.0.1\r\n - Removed npm dependency on Natural.  Certain modules are included in /lib.\r\n - Add support for ES6 Promises.\r\n - Improved data file reads for up to **5x** performance increase compared to previous version.\r\n - Tests are now [mocha](https://mochajs.org/)-based with [chai](http://chaijs.com/) assert interface.\r\n\r\n0.1.16\r\n - Changed dependency to wordnet-db (renamed from WNdb)\r\n\r\n0.1.15\r\n- Added `syn` (synonym) and `exp` (example) CLI commands.\r\n- Fixed `rand` CLI command when no start word given.\r\n- Removed -N, --num CLI option.  Use `wordpos rand [N]` to get N random numbers.\r\n- Changed CLI option -s to -w (include stopwords).\r\n\r\n0.1.13\r\n- Fix crlf issue for command-line script\r\n\r\n0.1.12\r\n- fix stopwords not getting excluded when running with CLI\r\n- added 'stopwords' CLI *command* to show list of stopwords\r\n- CLI *option* --stopword now renamed to --withStopwords\r\n\r\n0.1.10\r\n- rand functionality added\r\n\r\n0.1.6\r\n- added command line tool\r\n\r\n0.1.4\r\n- added fast index\r\n\r\nLicense\r\n-------\r\n\r\n(The MIT License)\r\n\r\nCopyright (c) 2012-2019 mooster@42at.com\r\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.2","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-+UiuL/t/zkNhgDUzpxeZfWt60r3wwUvLaFfJjOg+XqB0m63PE2k8dv81i2T3PvHTy9L3xdRlMEQis3J0eMmlMA==","shasum":"1ff66eb0aee251977c52623e989c839056ea6a9f","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.2.tgz","fileCount":42,"unpackedSize":28929252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc73dBCRA9TVsSAnZWagAA15oP/jyyQZGR9S1yHA/sqawC\nw+MxHhwCxAN3l3BTrzChyBXbHJI9cuDL0JaRsSPD4YzZy/Edd0jY22EG3Wtm\nmZmgom0R5S9ceT/DHvZJ/VobKWG+oBplNYWtO+2w96TgU7ZQFepKvXb/wQAM\ncPCfEzxg9YJAhuPtuByakV31BWyaN7X1Ks2Aqjq+CSF6AOpF0js7Zm52w5bO\nkRBEiKCcZP5TEMC6Hw63/XC0qRnYJ4mFSGeDYONJZ/mGp4GaXBsAWf7Im1ZN\neEimtToDGpbDi6GHuMxLUW+8fuwDQ3iX4I0tQIjWE9FYP5h45qkrARRgTd6x\nV+Ps0A1RN+xhOuVC9XCKCBJuKS8IWmObZsa1+Pkz58wH5Grttlt9w+oKRL1Z\nu4n4N+E6GoQJ70Pl4YQZOOQaIRUgfmniMoEKjRcK74Ftj3kJNKYs/kMJoYOC\nkVVbTljC/517WU5/Edb9kj/2fKJOG/UXFQ1djrekQOEgySH/gK1w0lY4TGUI\nJMNA7tt7/cKwv7GOD6TJXKvjFrch/ZtczvPXR8R0a5RxUmndA33onfmiQS31\nmtP6MI36dyEmewvXoD0AvvshTrJg2/IqdeOGLKXxWwwd9tyTvWvHf+UUQBI8\n045zEi3qRjRC+QahT4XlYFgPaxI0TGtrtzsdMyfQF3fXqzdSuIO2/g1d8L7o\n+SgE\r\n=26Fz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKi/2iXniKCkGwLaOMnXI/m/86C0nYeELfK6Pm2L+8mAIgfcK189IXunC7UbQxzM05zDfZQw9IT4VPOUnHsf6oUyQ="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.2_1559197504442_0.818767431862407"},"_hasShrinkwrap":false},"2.0.0-beta.10":{"name":"wordpos","version":"2.0.0-beta.10","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- to try it out `npm i wordpos@beta` or  [see it in action](https://moos.github.io/wordpos/cdn). See below for usage.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,  // WIP\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## TODO\r\n- implement `includeData` option for preload\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","readmeFilename":"README.md","gitHead":"7dd8072d26145eac425571c5f229ccc769b86f6c","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.10","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-AGd6Dt02achWBCedPINXD/egv6jgLonzjoqFmAUIWXvh1MxNi+f9mm4lvjq4gdPlqIyPbMOlhjV82tNHcvo2rg==","shasum":"d463d290a2a6f65e6143a526d18cb4ee5f5559b1","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.10.tgz","fileCount":28,"unpackedSize":193916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC5sCCRA9TVsSAnZWagAAHxYQAI2BW+yGca8y9sPoqgRB\nywkXeGJ0nmuczk+kOK7cQtht9RgumDX+POYr0ZNohw7G29MXKUwuPbDMWY/n\n9C+fNOEaetjvTWHn85nWUxB66lns00ahssSQj2A/bddIth2gVFkZgyZQn3Ge\na7/4J0DVfCBGNnsf8lqwTPDe1+BRs8BP4tOu9G9MgoHybi4gIxJ9xzl4/DlA\n/U9kExtOHV4r3eS6KtzG28Kg6bv0ZGmdY5q7HcTi2gj2eYq/RbfK19Kkjw4S\nJHd3ZVlUIKiSYA6sX1ObdBqIP+iO/AFNnRE6JnRDMhqS2XMICHwdoJRCD9E+\nJEQPp7Yeo4/WzLTAIv7PNubmQaM3wrecIk26iDJLKzwHBI0W2nzQhnVxdNEy\nQZqEdAEUT4CK8zXfBLdvek3LgDkic60AsRMEOi6M/isUNaOYx4hEZfMmKT0Z\nfGnZ8IIVO3XeV4AOdFdcW0HDmAsHsLgRMOdluv8EwLze7jb4zodTda6qf7uN\nbJAM+DZy+nlkXp8kVfCcdOD4+8PTuVXFeSBR6k4/ZBaZBf6+4ohBl1GQS64/\n3nptCy1j98Cium7dBzzPWcv75ucAyzNPbTVIozeABU7t56UGvBkhrK46kLa9\n7SxIcLcOKHvsj97txDoqlcDixI+tzcSG3CO8SErG4gOetk5OFM6xEhmnUcYj\no7Q5\r\n=OALC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYgXj9KWaekYJeTHPLkGRydIuO9n+0dN/grHioxEaq3AiEA7kIy33zHf1xi5OXWeSgOMw+lJDcVYfTGd2poggPNa+w="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.10_1577818881635_0.7580774368034711"},"_hasShrinkwrap":false},"2.0.0-beta.11":{"name":"wordpos","version":"2.0.0-beta.11","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- to try it out `npm i wordpos@beta` or  [see it in action](https://moos.github.io/wordpos/cdn). See below for usage.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,  // WIP\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## TODO\r\n- implement `includeData` option for preload\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","readmeFilename":"README.md","gitHead":"7dd8072d26145eac425571c5f229ccc769b86f6c","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.11","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-uZo4s3Z852glro2RhSNQll4dRxabKspCNw23HSRmbZ2kF51nZwKIXrnCOoazVCkts1JgTWFyTfe64sxe1gfVCQ==","shasum":"37fcdd308cbef67cb21c1f22f4e194b28ee8dc0f","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.11.tgz","fileCount":30,"unpackedSize":202202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC5t+CRA9TVsSAnZWagAArb8P/RjQ1LwF2NAYNhMxmpGp\n4+tPV3nubcCqlDaTzoTs8ReJQQXus3xbCfoY20sDygNQkcJX/7+KlaNgWRBz\nY53JN2X7BC8v8lNAAnJftRYvYMniikhRDgkcPe0o/itN6uyizWvH/5prAF75\n0rDN1d5Kb2DquDRWzjUQCNzkEklP1lT0bZvVTCXyXPUji+FRK9UheGv9xK/D\nDnH9nkzttE0/yVcPq3XR9WnHo1eNclg6GMtYPZxlgESr3gvstUDBWtTygpoU\n/9K4WnWM1YXcRhx83Mwho4SwsNWABx8z/1l2Lndua8h/HhDClHabWJiO3ESi\nI4bgdYtHNG1qeGaROrHRK5uxv9D9whlhakr8skMdBoVCJc2kxGqWDw0bfH9v\n9dyQp4JRQ5qDqkovpf5W63M8201E+n8rOA6KW4W+b3ZcAj+GBiJdxR256wUz\nQnaKQmToLYl/o2jAt/rGP5ZChMNj80wlHlbja8tlk2DkAp0lb6u6kO7tzE4Q\nC0orYIdLSg7+bd3EHEQJZr66SVpFtRRTHUXYm1k6PYTBQqiw89HsiOvTQeT+\n3PkuUI59praP7317DaHcqDe/gM3ekswglrd3ntuw9ljUSnTThGoewGUQf/wi\nmqSD2Jq+87ccUnlgolsdYSwLqmKAbMRDTKHSX/iVKevPEWJcpVFO5UH4/UpA\nlEPA\r\n=NoKQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxVLrIbSaNJGMQAvZ29MPyUYwkMWslTlR7nMWfu6nvLAiEAtzYPJK4R28PyjTzov50iUaJjjQQA2e0tnQCO7awlZ6Q="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.11_1577819006069_0.4183130564123321"},"_hasShrinkwrap":false},"2.0.0-beta.12":{"name":"wordpos","version":"2.0.0-beta.12","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0","parcel":"^1.12.4"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test","test-browser":"mocha test/wordpos_test --require @babel/register"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- to try it out `npm i wordpos@beta` or  [see it in action](https://moos.github.io/wordpos/cdn). See below for usage.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,  // WIP\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## TODO\r\n- implement `includeData` option for preload\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","readmeFilename":"README.md","gitHead":"cddce9d39411a3103a52e0dcfbecfbaf2f4a0291","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.12","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-T03P/fgwJxiijGFwdODinWFnbRbkFYjH+g/IEjpWD7GJ/XSaJ+Y6Gxdyx5aMJCdN/OfqHeHOhSaFusLD02LkBw==","shasum":"b791c0b049cc17e351043f07dc1ec8b7b431ba5b","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.12.tgz","fileCount":30,"unpackedSize":202228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC6hICRA9TVsSAnZWagAAT7YQAIzV5JH6Mm9JkdgDRyq1\nCEG1pSIE4HD0PKX5NANpXsqHVNHaIgDdZ6SDaFEGxNT+rzHg7S2BqAvvzn/d\nEMN5LlWIepYvwImE6mrJGzIAxt9vuQH9GGtV2dSbk39GzDzNhvZEKJq1QvoW\n+VH+Qf69JLdM+LOQO8NnoET336EMyOk80eqyVTHe96U6p9pHrY7GI5gTCxmk\nFWjAyMj39BsfmeQ3OY3uMuHkcXiXtIg1LO01cI8U0i6Yn/a/SDeQtGeTVFAj\nrjHCN+qLJESvR3LPXnTFYgQ+NH+0jXhQEM2KuBp7OVPMPBFYG9vwYKXj332T\nKVbr2BxmZwo3T8HdyAGeB7ciQQ5OmFd9oEsnzv0IZmA3Jax6kZSSKypewvf/\n7EdslpSdRePZnJ7z17ucSvEWNc+/ioZ2lMp72rcP2Wxr/g9ULFMzFyk725rU\nBE1HqKSKCyr3pQtdbN/2Ol/QyKTz1+al0MO0h7nnydWarkzGFO5R4sI1E+ij\nEhUAVU8XC8bToiTU9o+/NBhLZ7G7ci/NG9bE5GNDMVJzXghoYnaue9QiY4aI\nIjGeLIMK8inTBgkzElcuf9bQkHdVciAB8+sZpM+okhAk95ErR78uoauif7mC\nt5+ZeEPQH/sU5ADpvSxL32aT5YTAb5M9VQWjBOZ+1eLtlEidDHMpLgtB3ekZ\nuSie\r\n=+l6s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdht6CFm8v1Wrw7vDX83lJ/xBgL3n/vgjOtZ0w70lJ4AiA7cDL6pgUddatfiOSszZ7UPdSwqNZRWFWPzrIoZpO06w=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.12_1577822279918_0.1761802611453438"},"_hasShrinkwrap":false},"2.0.0-beta.13":{"name":"wordpos","version":"2.0.0-beta.13","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0","parcel":"^1.12.4"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test --exclude test/browser_test.js","test-browser":"mocha test/browser_test test/wordpos_test  --require @babel/register"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- to try it out `npm i wordpos@beta` or  [see it in action](https://moos.github.io/wordpos/cdn). See below for usage.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","readmeFilename":"README.md","gitHead":"4d97bcbc45ff78fc938d5b44dc49cc5cf883d06a","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.13","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-HMWx67wzX4CSLx/s7WZ3dpjW2BF25RNqZBIL1YiSh78XdKKDjXGi+32ij86px1wgEGSOHkEwwpH/kCBG8dLKtw==","shasum":"24ec77d5c9155822dd4b4dd4f877f6c4f0a5b7de","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.13.tgz","fileCount":31,"unpackedSize":210352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC8znCRA9TVsSAnZWagAADWwP/iznABrVDEsOcQ9lhAuX\nPFcvj1n9i797zGFC5829bA1e6CrVAub1+MujZdl2OjL0avvQzb0Py26kRLJZ\n85tUw3LxlOcGULuD1dk+YJ0aAn1iLB2PneAx6TYsUmuvuExYslgy6e0MO+nn\nTFrw7PmS1mR7WAY2uNU3DunAAvxxgoS8plFnEsbrE4ckwc17F72dSuSeqN7A\nKruSlokQVL5dI4M+rMKjt5vquy/Vs/zAubmInaSTpmsjsQHIx9Al/UPKXtH5\nOYkh26spn+1l3LUl3PrzXjYMGH0+eR70fnfq0nJFrQNS6zCdX0GE5l+/U0fN\n+4eid+j/s/SlfEOE7oR3q1zq7+9FyvsRnKTUX8B3h03GC62ecaBbz2uEGX/g\ncOvD1AqEBJXUVoi/gKuheQFEdXNlbW1ZVgI2bKwyEhUS50h3lmEMLFQDrkSo\nc9G0PxZAoKsQgmf6xUnQoZNvaBUB+JIwnRdO/2U1jj0ZUIilj0Qtk/SVO8aa\nTRFejqWiJK6mzEZSLXzEdwDFtZt8lAum4xQCVbOb2B55/A7m7rYk4OUXi4Fy\nW9C12U8KwHs6p4t6I6XSvxICcpmBkXTInO0sJWhohcOkJ1VH56+DNFw6yAA+\nQfA6Ti0AQq59a+1FWIPrr5UvrxVEbEoRZt7VbDUubJV6cGvZ3mMCraQ/eGdo\nnYf+\r\n=yy7T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcKU5ovHJdCnSn2AvdPqdQzSOe3vKIxQoEPSrUtaMcjQIhALJOsDH63lfIROMuuk9edStWQDUnOe/vab4nUYuw9+nN"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.13_1577831654884_0.8579803848694998"},"_hasShrinkwrap":false},"2.0.0-beta.14":{"name":"wordpos","version":"2.0.0-beta.14","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0","parcel":"^1.12.4"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test --exclude test/browser_test.js","test-browser":"mocha test/browser_test test/wordpos_test  --require @babel/register"},"license":"MIT","readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n:zap: v2.x can work in browsers -- to try it out `npm i wordpos@beta` or  [see it in action](https://moos.github.io/wordpos/cdn). See below for usage.\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/wordnet/man/lexnames.5WN.html).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","readmeFilename":"README.md","gitHead":"4d97bcbc45ff78fc938d5b44dc49cc5cf883d06a","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0-beta.14","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-8OUpribUkGQc7dKGj8MhZ//A2O8ODlhV2cKIo8KMDN66Y7auN9SuZccXMqF0E94EcMqUnd21vLkDS57ws33wRg==","shasum":"07e8bf860c383d9ef430d4cd5701495c074263c3","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0-beta.14.tgz","fileCount":31,"unpackedSize":210564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC9ByCRA9TVsSAnZWagAApYUP/RCUpHOk6bdMVgtTSpLi\nomDH43zxtHy+zHTziueu51Gci2C5QyATrUPhkg6WlvUrjR0iD87vpSFUH7FO\nav8p1OQsvkprSPSAAprBBc/vUeserj6oBNB+PvPbGF0fAOtR1uP5pmj4qs19\nhMB58RIVz8XPgK2JBWpCtmzqR9alhoUO5amxHR7ld5NXX50dPk7q0955eFs5\nULSIBf/gRg6XpchpPZXLpXME4IzVTLhK8eXREiwSyWDRTCJuTyIwWr8fOR/h\neCS+miWvx4D9eBlSv7PdYesbHOUiynGVgx8VfbtVKA36zu+oQRlDdKhbUDGL\nJuymptsYLhuihzz8zJaXP66to+mzDagErL6MzdJub4YcV76BvnOlfaKcyROz\nLJP7oQKf/i2Uf9gmbA+SxOStnwDU1FIV8vqLxXjlmdfmYSbWuAqRu0YhsYNc\noU1mgLeSNSs27G3hZH4SU5LT4HwpHCrggwkDzrj2MZMT//OSRuetTClrvaSL\nlGPVJEOcpeJEaRpZumvozL6/zZLWmocWOGWmEJSUnECifzszs0HijIlgo5V2\ni0C1ytmAr8q5KmbJnyBey8hmHyIvTvcCqCW3bZ0tR1VCaSF+SDsqMT5Q9HZo\nN3iJImC82oJmnhH9FFySOS62Kl58b5ynXpaggHaK+0j1y8IZgSufZxwfOjbg\nn9gC\r\n=KdT2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIErFzMfEq8ukl6u1S83W4Z0LHFwuXqDwNJaMHJcwj7J1AiAI3gwj9CABsctjInBj2ddeh9VPk2VjbFSK6p5pHtBZUg=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0-beta.14_1577832561432_0.4085183903400482"},"_hasShrinkwrap":false},"2.0.0":{"name":"wordpos","version":"2.0.0","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0","parcel":"^1.12.4"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test --exclude test/browser_test.js","test-browser":"mocha test/browser_test test/wordpos_test  --require @babel/register"},"license":"MIT","gitHead":"d6461971d8c9ec1bab135f3eeb218b1a0160c2ed","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.0.0","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-GZ3RcP9pciG3CH2sn8tUA6Shs8Fw8MJJoWOMiYD6IpNH1hdb5MK+EIFR1tLx8gbFvtf0ErfOHObvyaZ8IgfFOA==","shasum":"daf998d1a660d85a12ae2823686f8db38db0d90a","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.0.0.tgz","fileCount":31,"unpackedSize":210561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDDqxCRA9TVsSAnZWagAA8oUP/Rjtfk9TMIhDKsf51HE0\nlhfRGtYPO610N9QjlKCcQnEXUMGYF0/xd2xDB0uDsInjc740Mk3LKLzKvgWk\nsrAVgUKQ/gjwr1jiRMi4iHKsCteORgYYjGU3GKCcBsemrIBOSKH1an7v+iGJ\nCZ6rsSEv8VHXdTVvQDSf56wpJCZv3mJF6qkNlaz5dB1J51zKGsHOrlpx1DAb\nZSV2NHImKSV95+VZ3WRJiexcJUAEN8kX/Azt3gdeDCkjNif5Oy4F2NzHP3U7\n9Io6skSMxUjvpZ7Y7UFOdY9d9P4SPmI7o4Nyrkf2BU2a6dEIE6b4L0s/dbsJ\nKu6oTzm7gYRgwM8MvL+krqjWYShXrxPeQ/+v00C8INGNl2BeIGD2mEa0ZGuY\n4Kvvy6FK3qJlS0T4qdfnPv+PnqgaQjrkXM6j8IPQdjH4qzfHhuiYnyBMdb8S\nbCPl51MEp1v8Eo7OmcWIe6bjtSspKQUYtMt+LC3j6IkoQtQ3y9Iiik56Vy+c\nrMXMS/KY+qKTH5zBREwKHBSIYSI2jSCwEHAdHBtrqq9/XV+wlqTbjK/JT9zf\n40IHGSfHGGVZho4q8v/RYWfjEGehWGl741FBB1A5MadVTcmFypc1O+JN3mry\nfUxZkxgk/yVyop7jSVqor4bpFj9MXYjOZYXeBIP5Ie/5eN+qrlau8/sQb9IG\nSjsF\r\n=TPcV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEKPugQuSOtNtYWypOaVwdh2tOVHSo4aUrbntes77rwZAiBx+EAOlq4SliCx589/hKWsRde+ICD4MSrlRqHUsRtJYw=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.0.0_1577859760725_0.058090158016819604"},"_hasShrinkwrap":false},"2.1.0":{"name":"wordpos","version":"2.1.0","description":"wordpos is a set of part-of-speech utilities for Node.js & browser using the WordNet database.","author":{"name":"Moos","email":"mooster@42at.com"},"keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"homepage":"https://github.com/moos/wordpos","engines":{"node":">=6"},"bin":{"wordpos":"./bin/wordpos-cli.js"},"dependencies":{"commander":"^2.20.3","underscore":">=1.3.1","wordnet-db":"^3.1.14"},"devDependencies":{"@babel/core":"^7.7.7","@babel/plugin-proposal-class-properties":"^7.7.4","@babel/plugin-proposal-decorators":"^7.7.4","@babel/plugin-proposal-do-expressions":"^7.7.4","@babel/plugin-proposal-export-default-from":"^7.7.4","@babel/plugin-proposal-export-namespace-from":"^7.7.4","@babel/plugin-proposal-function-sent":"^7.7.4","@babel/plugin-proposal-json-strings":"^7.7.4","@babel/plugin-proposal-logical-assignment-operators":"^7.7.4","@babel/plugin-proposal-nullish-coalescing-operator":"^7.7.4","@babel/plugin-proposal-numeric-separator":"^7.7.4","@babel/plugin-proposal-optional-chaining":"^7.7.5","@babel/plugin-proposal-pipeline-operator":"^7.7.7","@babel/plugin-proposal-throw-expressions":"^7.7.4","@babel/plugin-syntax-dynamic-import":"^7.7.4","@babel/plugin-syntax-import-meta":"^7.7.4","@babel/preset-env":"^7.7.7","@babel/register":"^7.7.7","babel-plugin-dynamic-import-node":"^2.3.0","chai":"^4.2.0","mini-bench":"^1.0.0","mocha":"^5.2.0","parcel":"^1.12.4"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"main":"./src/node/index.js","browser":"./src/browser/index.js","scripts":{"postinstall":"node tools/stat.js --no-stats index.adv index.adj index.verb index.noun","build":"parcel build --detailed-report -d dist -o wordpos.min.js --global WordPOS -t browser src/browser/index.js","postbuild":"sed -i 's/ES6_IMPORT/import/' dist/wordpos.min.js && node tools/banner.js | cat - dist/wordpos.min.js > _tmp_ && mv _tmp_ dist/wordpos.min.js","prepare":"npm run build","pretest":"node tools/makeJsonDict.js index data","test":"npm run test-node && npm run test-browser","test-node":"mocha test --exclude test/browser_test.js","test-browser":"mocha test/browser_test test/wordpos_test  --require @babel/register"},"license":"MIT","gitHead":"51c412e82e0387f2c20916c33842f9cc2580abad","bugs":{"url":"https://github.com/moos/wordpos/issues"},"_id":"wordpos@2.1.0","_nodeVersion":"11.7.0","_npmVersion":"6.7.0","_npmUser":{"name":"moos","email":"mooster@42at.com"},"maintainers":[{"name":"moos","email":"mooster@42at.com"}],"dist":{"integrity":"sha512-0fGpg8Fv7vT8dFBw1fl3JX2ooqbtcWXUFUOzoD5O6CQ+0QIV9h+MC2N3zHmcD6+295OYzfXXxKSQJiim0nakJA==","shasum":"417850354588170674cf6dd7cfaaacabc8927801","tarball":"https://registry.npmjs.org/wordpos/-/wordpos-2.1.0.tgz","fileCount":32,"unpackedSize":215611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0E3LCRA9TVsSAnZWagAAOhUP/jDm/3RR+/Y/eI+1zcbw\nHib982QicI/Cl3XsUWUXxM7hiyy5Z+752uIlq0jaeBLcNF9f/w2g8fEK0+lw\nHcK8LblKYr0dhaQ4444IYGzq3oTdWZINOQ9NZvBPZQB60yxyyYysl9cV4B0z\nS5EvfdHmZt5QQTOUuMMaw3ra0V4xhaQVGI+IALgKN0pyZRy/fGc4GQS9/Dzl\nsixTZggxj/jtri2/z9kpNJM3ZjC8LJMVHVGHO8oivTgYUTKBvP912mZMaiZJ\n3JVpxlI05tLTa7XJYUU5goe5t/AJbE86eK2nX5NcDQ47u6hZ/SEqdgxdKYvO\n2y1iSlayYWrRToCiy1mbP4rs3aBBx6H2gINi9KdgBh1/TSY8K5x2IjvH7+sY\ntJ6HlxI6zDdid9D/4R094lnUvi+MRyy3ZAImehvrQ5wMY1w1Fd7g9l1eGLTB\nRHlcfYz+710cowMIVjHHRHOAMzyxuwhDcGxUDbcwaHt1uAEa8D7IMVl8cUos\nLPK8EG+FEW8sdq4W6VzkMQDFGzuLKWvcCqYXYnSkXEt+CZxZqgJskKQCiYFs\nii7ETyKJj7+oNjoyEKxxdkRjdzUHJRKEpsNmhaNFLyL2Pdgpr7G12fmZwejv\nMtXbdDHIxwyCJ9HfCgDlrYFWCtljZ+q5frPCWULdVLq/Lu6zjxggYDQilgc1\nCyef\r\n=ctX7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9//6RxgLpWOIOW3hdHNzGBEymqO3cyLwG5VE4xLPTSQIgOmH0Q28CqCfAjbCwQ7aSWNZcGpCMyagFJ1E+r5RggQc="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wordpos_2.1.0_1607486922939_0.07014167010249706"},"_hasShrinkwrap":false}},"readme":"wordpos\r\n=======\r\n\r\n[![NPM version](https://img.shields.io/npm/v/wordpos.svg)](https://www.npmjs.com/package/wordpos)\r\n[![Build Status](https://img.shields.io/travis/moos/wordpos/master.svg)](https://travis-ci.org/moos/wordpos)\r\n\r\nwordpos is a set of *fast* part-of-speech (POS) utilities for Node.js **and** browser using fast lookup in the WordNet database.\r\n\r\nVersion 1.x is a major update with no direct dependence on [natural's](https://github.com/NaturalNode/natural#wordnet) WordNet module, with support for [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), and roughly 5x speed improvement over previous version.\r\n\r\n> ~~**CAUTION** The WordNet database [wordnet-db](https://github.com/moos/wordnet-db) comprises [155,287 words](https://wordnet.princeton.edu/documentation/wnstats7wn) (3.0 numbers) which uncompress to over **30 MB** of data in several *un*[browserify](https://github.com/substack/node-browserify)-able files.  It is *not* meant for the browser environment.~~\r\n\r\n🔥 Version 2.x is totally refactored and **works in browsers** also -- see [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Installation\r\n\r\n     npm install -g wordpos\r\n\r\nTo run test: (or just: npm test)\r\n\r\n    npm install -g mocha\r\n    mocha test\r\n\r\n## Quick usage\r\n\r\nNode.js:\r\n```js\r\nvar WordPOS = require('wordpos'),\r\n    wordpos = new WordPOS();\r\n\r\nwordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){\r\n    console.log(result);\r\n});\r\n// [ 'little', 'angry', 'frightened' ]\r\n\r\nwordpos.isAdjective('awesome', function(result){\r\n    console.log(result);\r\n});\r\n// true 'awesome'\r\n```\r\n\r\nCommand-line: (see [CLI](bin) for full command list)\r\n```bash\r\n$ wordpos def git\r\ngit\r\n  n: a person who is deemed to be despicable or contemptible; \"only a rotter would do that\"; \"kill the rat\"; \"throw the bum out\"; \"you cowardly little pukes!\"; \"the British call a contemptible person a 'git'\"  \r\n\r\n$ wordpos def git | wordpos get --adj\r\n# Adjective 6:\r\ndespicable\r\ncontemptible\r\nbum\r\ncowardly\r\nlittle\r\nBritish\r\n```\r\n\r\n\r\n## Options\r\n\r\n```js\r\nWordPOS.defaults = {\r\n  /**\r\n   * enable profiling, time in msec returned as last argument in callback\r\n   */\r\n  profile: false,\r\n\r\n  /**\r\n   * if true, exclude standard stopwords.\r\n   * if array, stopwords to exclude, eg, ['all','of','this',...]\r\n   * if false, do not filter any stopwords.\r\n   */\r\n  stopwords: true,\r\n\r\n  /**\r\n   * preload files (in browser only)\r\n   *    true - preload all POS\r\n   *    false - do not preload any POS\r\n   *    'a' - preload adj\r\n   *    ['a','v'] - preload adj & verb\r\n   * @type {boolean|string|Array}\r\n   */\r\n  preload: false,\r\n\r\n  /**\r\n   * include data files in preload\r\n   * @type {boolean}\r\n   */\r\n  includeData: false,\r\n\r\n  /**\r\n   * set to true to enable debug logging\r\n   * @type {boolean}\r\n   */\r\n  debug: false\r\n\r\n};\r\n```\r\nTo override, pass an options hash to the constructor. With the `profile` option, most callbacks receive a last argument that is the execution time in msec of the call.\r\n\r\n```js\r\n    wordpos = new WordPOS({profile: true});\r\n    wordpos.isAdjective('fast', console.log);\r\n    // true 'fast' 29\r\n```\r\n\r\n## API\r\n\r\nPlease note: all API are *async* since the underlying WordNet library is async.\r\n\r\n#### getPOS(text, callback)\r\n#### getNouns(text, callback)\r\n#### getVerbs(text, callback)\r\n#### getAdjectives(text, callback)\r\n#### getAdverbs(text, callback)\r\n\r\nGet part-of-speech from `text`.  `callback(results)` receives an array of words for specified POS, or a hash for `getPOS()`:\r\n\r\n```\r\nwordpos.getPOS(text, callback) -- callback receives a result object:\r\n    {\r\n      nouns:[],       Array of words that are nouns\r\n      verbs:[],       Array of words that are verbs\r\n      adjectives:[],  Array of words that are adjectives\r\n      adverbs:[],     Array of words that are adverbs\r\n      rest:[]         Array of words that are not in dict or could not be categorized as a POS\r\n    }\r\n    Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective)\r\n```\r\n\r\nIf you're only interested in a certain POS (say, adjectives), using the particular getX() is faster\r\nthan getPOS() which looks up the word in all index files. [stopwords](lib/natural/util/stopwords.js) are stripped out from text before lookup.\r\n\r\nIf `text` is an *array*, all words are looked-up -- no deduplication, stopword filtering or tokenization is applied.\r\n\r\ngetX() functions return a Promise.\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log)\r\n// [ 'bear', 'squirrel', 'little', 'chased' ]\r\n\r\nwordpos.getPOS('The angry bear chased the frightened little squirrel.', console.log)\r\n// output:\r\n  {\r\n    nouns: [ 'bear', 'squirrel', 'little', 'chased' ],\r\n    verbs: [ 'bear' ],\r\n    adjectives: [ 'little', 'angry', 'frightened' ],\r\n    adverbs: [ 'little' ],\r\n    rest: [ 'the' ]\r\n  }\r\n\r\n```\r\nThis has no relation to correct grammar of given sentence, where here only 'bear' and 'squirrel' would be considered nouns.\r\n\r\n#### isNoun(word, callback)\r\n#### isVerb(word, callback)\r\n#### isAdjective(word, callback)\r\n#### isAdverb(word, callback)\r\n\r\nDetermine if `word` is a particular POS.  `callback(result, word)` receives true/false as first argument and the looked-up word as the second argument. The resolved Promise receives true/false.\r\n\r\nExamples:\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isNoun('fish', console.log);\r\n// true 'fish'\r\n\r\nwordpos.isAdjective('fishy', console.log);\r\n// true 'fishy'\r\n\r\nwordpos.isAdverb('fishly', console.log);\r\n// false 'fishly'\r\n```\r\n\r\n#### lookup(word, callback)\r\n#### lookupNoun(word, callback)\r\n#### lookupVerb(word, callback)\r\n#### lookupAdjective(word, callback)\r\n#### lookupAdverb(word, callback)\r\n\r\nGet complete definition object for `word`.  The lookupX() variants can be faster if you already know the POS of the word.  Signature of the callback is `callback(result, word)` where `result` is an *array* of lookup object(s).\r\n\r\nExample:\r\n\r\n```js\r\nwordpos.lookupAdjective('awesome', console.log);\r\n// output:\r\n[ { synsetOffset: 1285602,\r\n    lexFilenum: 0,\r\n    lexName: 'adj.all',\r\n    pos: 's',\r\n    wCnt: 5,\r\n    lemma: 'amazing',\r\n    synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ],\r\n    lexId: '0',\r\n    ptrs: [],\r\n    gloss: 'inspiring awe or admiration or wonder; [...] awing majesty, so vast, so high, so silent\"  '\r\n    def: 'inspiring awe or admiration or wonder',     \r\n    ...\r\n} ], 'awesome'\r\n```\r\nIn this case only one lookup was found, but there could be several.  \r\n\r\nVersion 1.1 adds the `lexName` parameter, which maps the lexFilenum to one of [45 lexicographer domains](https://wordnet.princeton.edu/documentation/lexnames5wn).\r\n\r\n\r\n#### seek(offset, pos, callback)\r\nVersion 1.1 introduces the seek method to lookup a record directly from the synsetOffset for a given POS.  Unlike other methods, callback (if provided) receives `(err, result)` arguments.\r\n\r\nExamples:\r\n```js\r\nwordpos.seek(1285602, 'a').then(console.log)\r\n// same result as wordpos.lookupAdjective('awesome', console.log);\r\n```\r\n\r\n#### rand(options, callback)\r\n#### randNoun(options, callback)\r\n#### randVerb(options, callback)\r\n#### randAdjective(options, callback)\r\n#### randAdverb(options, callback)\r\n\r\nGet random word(s).  (Introduced in version 0.1.10)  `callback(results, startsWith)` receives array of random words and the `startsWith` option, if one was  given. `options`, if given, is:\r\n```\r\n{\r\n  startsWith : <string> -- get random words starting with this\r\n  count : <number> -- number of words to return (default = 1)\r\n}\r\n```\r\nExamples:\r\n```js\r\nwordpos.rand(console.log)\r\n// ['wulfila'] ''\r\n\r\nwordpos.randNoun(console.log)\r\n// ['bamboo_palm'] ''\r\n\r\nwordpos.rand({starstWith: 'foo'}, console.log)\r\n// ['foot'] 'foo'\r\n\r\nwordpos.randVerb({starstWith: 'bar', count: 3}, console.log)\r\n// ['barge', 'barf', 'barter_away'] 'bar'\r\n\r\nwordpos.rand({starsWith: 'zzz'}, console.log)\r\n// [] 'zzz'\r\n```\r\n\r\n**Note on performance**: (node only) random lookups could involve heavy disk reads.  It is better to use the `count` option to get words in batches.  This may benefit from the cached reads of similarly keyed entries as well as shared open/close of the index files.\r\n\r\nGetting random POS (`randNoun()`, etc.) is generally faster than `rand()`, which may look at multiple POS files until `count` requirement is met.\r\n\r\n\r\n#### parse(text)\r\nReturns tokenized array of words in `text`, less duplicates and stopwords. This method is called on all getX() calls internally.\r\n\r\n\r\n#### WordPOS.WNdb\r\nAccess to the [wordnet-db](https://github.com/moos/wordnet-db) object containing the dictionary & index files.\r\n\r\n#### WordPOS.stopwords\r\nAccess the array of [stopwords](lib/natural/util/stopwords.js).\r\n\r\n\r\n## Promises\r\n\r\nAs of v1.0, all `get`, `is`, `rand`, and `lookup`  methods return a standard ES6 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\r\n\r\n```js\r\nwordpos.isVerb('fish').then(console.log);\r\n// true\r\n```\r\n\r\nCompound, with error handler:\r\n\r\n```js\r\nwordpos.isVerb('fish')\r\n  .then(console.log)\r\n  .then(doSomethingElse)\r\n  .catch(console.error);\r\n```\r\n\r\nCallbacks, if given, are executed _before_ the Promise is resolved.\r\n\r\n```js\r\nwordpos.isVerb('fish', console.log)\r\n  .then(console.log)\r\n  .catch(console.error);\r\n// true 'fish' 13\r\n// true\r\n```\r\nNote that callback receives full arguments (including profile, if enabled), while the Promise receives only the result of the call.  Also, beware that exceptions in the _callback_ will result in the Promise being _rejected_ and caught by `catch()`, if provided.\r\n\r\n## Running inside the browsers?\r\n\r\nSee [wordpos-web](https://github.com/moos/wordpos-web).\r\n\r\n## Fast Index (node)\r\n\r\nVersion 0.1.4 introduces `fastIndex` option.  This uses a secondary index on the index files and is much faster. It is on by default.  Secondary index files are generated at install time and placed in the same directory as WNdb.path.  Details can be found in tools/stat.js.\r\n\r\nFast index improves performance **30x** over Natural's native methods. See blog article [Optimizing WordPos](http://blog.42at.com/optimizing-wordpos).\r\n\r\nAs of version 1.0, fast index is always on and cannot be turned off.\r\n\r\n## Command-line (CLI) usage\r\n\r\nFor CLI usage and examples, see [bin/README](bin).\r\n\r\n\r\n## Benchmark\r\n\r\nSee [bench/README](bench).\r\n\r\n\r\n## Changes\r\nSee [CHANGELOG](./CHANGELOG.md).\r\n\r\nLicense\r\n-------\r\n\r\nhttps://github.com/moos/wordpos\r\nCopyright (c) 2012-2020 mooster@42at.com\r\n(The MIT License)\r\n","maintainers":[{"name":"moos","email":"mooster@42at.com"}],"time":{"modified":"2022-06-29T03:14:00.732Z","created":"2012-05-07T07:32:45.282Z","0.1.1":"2012-05-07T07:32:47.386Z","0.1.4":"2012-05-20T18:41:34.173Z","0.1.5":"2012-05-24T08:35:34.677Z","0.1.6":"2012-05-31T01:36:37.716Z","0.1.7":"2013-04-14T05:46:33.387Z","0.1.8":"2013-04-14T07:30:23.107Z","0.1.9":"2014-02-25T08:25:44.977Z","0.1.10":"2014-09-23T20:29:44.764Z","0.1.11":"2014-09-26T05:49:00.951Z","0.1.12":"2014-09-26T06:47:44.138Z","0.1.12-r1":"2014-09-26T21:08:34.302Z","0.1.12-r2":"2014-09-26T21:26:18.000Z","0.1.12-r3":"2014-09-26T21:58:39.529Z","0.1.13":"2014-09-26T22:16:40.412Z","0.1.14":"2014-10-16T07:21:05.482Z","0.1.15":"2014-10-17T16:40:30.014Z","0.1.16":"2015-12-24T05:42:37.292Z","1.0.0-RC1":"2016-01-19T04:32:44.690Z","1.0.0":"2016-01-19T04:35:11.688Z","1.0.1":"2016-01-19T04:47:29.083Z","1.1.0":"2016-04-09T20:53:57.255Z","1.1.1":"2016-12-22T20:48:32.830Z","1.1.2":"2016-12-25T17:15:44.578Z","1.1.3":"2017-06-12T16:22:52.206Z","1.1.4":"2017-06-12T16:44:04.244Z","1.1.5":"2017-06-12T20:15:04.300Z","1.1.6":"2018-03-04T20:05:31.486Z","1.2.0":"2018-09-02T23:17:18.528Z","2.0.0-beta":"2019-05-24T21:34:43.967Z","2.0.0-beta.1":"2019-05-30T05:59:04.947Z","2.0.0-beta.2":"2019-05-30T06:25:05.291Z","2.0.0-beta.10":"2019-12-31T19:01:21.742Z","2.0.0-beta.11":"2019-12-31T19:03:26.299Z","2.0.0-beta.12":"2019-12-31T19:58:00.015Z","2.0.0-beta.13":"2019-12-31T22:34:15.126Z","2.0.0-beta.14":"2019-12-31T22:49:21.583Z","2.0.0":"2020-01-01T06:22:40.928Z","2.1.0":"2020-12-09T04:08:43.061Z"},"author":{"name":"Moos","email":"mooster@42at.com"},"repository":{"type":"git","url":"git://github.com/moos/wordpos.git"},"homepage":"https://github.com/moos/wordpos","keywords":["natural","language","wordnet","adjectives","nouns","adverbs","verbs"],"bugs":{"url":"https://github.com/moos/wordpos/issues"},"readmeFilename":"README.md","users":{"nguru":true,"baddeo":true,"nimblemachine":true,"visualheuristics":true,"alejandrofelipe":true,"hain":true,"jochemstoel":true,"ja.superior":true},"license":"MIT"}