{"id":45893074,"url":"https://github.com/asher-stern/CRF","last_synced_at":"2026-03-13T06:00:57.269Z","repository":{"id":23511669,"uuid":"26877595","full_name":"asher-stern/CRF","owner":"asher-stern","description":"Implementation of CRF (conditional random fiels) and pos-tagger","archived":false,"fork":false,"pushed_at":"2017-01-14T16:01:55.000Z","size":281,"stargazers_count":78,"open_issues_count":0,"forks_count":26,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-07-12T16:06:01.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asher-stern.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-19T19:25:34.000Z","updated_at":"2024-02-27T18:19:00.000Z","dependencies_parsed_at":"2022-07-25T13:32:18.183Z","dependency_job_id":null,"html_url":"https://github.com/asher-stern/CRF","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/asher-stern/CRF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asher-stern%2FCRF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asher-stern%2FCRF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asher-stern%2FCRF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asher-stern%2FCRF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asher-stern","download_url":"https://codeload.github.com/asher-stern/CRF/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asher-stern%2FCRF/sbom","scorecard":{"id":211546,"data":{"date":"2025-08-11","repo":{"name":"github.com/asher-stern/CRF","commit":"51821237d5367071383b3eb949a2e11d0fa70f7b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.4,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2qrg-x229-3v8q","Warn: Project is vulnerable to: GHSA-65fg-84f6-3jq3","Warn: Project is vulnerable to: GHSA-f7vh-qwp3-x37m","Warn: Project is vulnerable to: GHSA-fp5r-v3w9-4333","Warn: Project is vulnerable to: GHSA-w9p3-5cr8-m3jj"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T00:51:31.626Z","repository_id":23511669,"created_at":"2025-08-17T00:51:31.626Z","updated_at":"2025-08-17T00:51:31.626Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-27T19:00:39.319Z","updated_at":"2026-03-13T06:00:57.262Z","avatar_url":"https://github.com/asher-stern.png","language":"Java","funding_links":[],"categories":["人工智能"],"sub_categories":["自然语言处理"],"readme":"\nAbout\n=====\n\nThis Java project is an implementation of linear-chain **Conditional Random Fields (CRF)** in pure Java,\nwith no third party dependency (except for log4j).\n\nThe CRF is exemplified by being used for the task of Part-Of-Speech tagging.\n\nThis is a free open-source project, which can be used also for commercial purposes. See LICENSE file.\n\n\nAdvantages\n==========\n\n1. Self contained: all the algorithms are implemented in the package itself.\n2. Free open source, also for commercial use.\n3. Relatively efficient: while this is a \"by the book\" implementation, some techniques have been invented\nand implemented to significantly improve run time efficiency.\n4. Clear, readable and well documented code. Might be useful also for educational purposes.\n\n\nSelf contained\n==============\nThe only required thrid party is Log4j. See [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/)\n(Note that it is automatically downloaded by Maven. No user action required).\n\nThe algorithms, including function optimization using LBFGS algorithm, forward-backward algorithm and Viterbi algorithm\nare fully implemented in the code.\n\n\nCompile and run\n===============\nThe project can be compiled with J2SE **version 8**.\n\nThis is a Maven project, compiled by simply running `mvn compile`.\n\nTo use this project as a library in another Maven project, add the following to the other project's POM file:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.asher-stern\u003c/groupId\u003e\n    \u003cartifactId\u003eCRF\u003c/artifactId\u003e\n    \u003cversion\u003e1.2.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n\n\nEntry points\n============\n\nFor those who are interested only in the CRF but not the POS-tagger, an example entry point is\n`com.asher_stern.crf.crf.run.ExampleMain`.\n\nNote that this entry point is only a skeleton, and the user should copy it, and implement the feature generator\nand other stuff required to run the CRF for the user's specific problem.\n\n\nThose who are interested in the POS-tagging example can use the following two entry points:\n`com.asher_stern.crf.postagging.demo.TrainAndEvaluate` and `com.asher_stern.crf.postagging.demo.UsePosTagger`.\n\nThe first entry point is for training the POS-tagger and evaluating it, and the second is for running it on\ntest examples.\n\nNote that training requires the Penn Tree-Bank corpus, and it should be provided as a directory with\nno subdirectories, which contains \".mrg\" files, where each files contains parse-trees.\n\n\n### A note about the POS-tagging example\n\n\nPlease note that this is not a state-of-the-art POS tagger, since it does not employ state-of-the-art features.\nRather, this POS-tagger uses very simplistic features, and is intended to exemplify CRF.\n\n\n**Enjoy!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasher-stern%2FCRF","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasher-stern%2FCRF","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasher-stern%2FCRF/lists"}