Navigation Menu

Skip to content

arlolra/revscoring

 
 

Repository files navigation

travis_ codecov_

Revision Scoring

A generic, machine learning-based revision scoring system designed to be used to automatically differentiate damage from productive contributory behavior on Wikipedia.

Example

Using a scorer_model to score a revision:

>>> import mwapi
>>> from revscoring import ScorerModel
>>> from revscoring.extractors import APIExtractor
>>>
>>> with open("models/enwiki.damaging.linear_svc.model") as f:
...     scorer_model = ScorerModel.load(f)
...
>>> extractor = APIExtractor(mwapi.Session(host="https://en.wikipedia.org",
...                                        user_agent="revscoring demo"))
>>>
>>> feature_values = extractor.extract(123456789, scorer_model.features)
>>>
>>> print(scorer_model.score(feature_values))
{'prediction': True, 'probability': {False: 0.4694409344514984, True: 0.5305590655485017}}

Installation

The easiest way to install revscoring is via the Python package installer (pip).

pip install revscoring

You may find that some of revscorings dependencies fail to compile (namely scipy, numpy and sklearn). In that case, you'll need to install some dependencies in your operating system.

Ubuntu & Debian:

Run sudo apt-get install python3-dev g++ gfortran liblapack-dev libopenblas-dev

Windows:

'TODO'

MacOS:

'TODO'

Finally, in order to make use of language features, you'll need to download some NLTK data. The following command will get the necessary corpus.

python -m nltk.downloader stopwords

You'll also need to install enchant compatible dictionaries of the languages you'd like to use. We recommend the following:

  • languages.arabic: aspell-ar
  • languages.dutch: myspell-nl
  • languages.english: myspell-en-us myspell-en-gb myspell-en-au
  • languages.estonian: myspell-et
  • languages.french: myspell-fr
  • languages.german: myspell-de-at myspell-de-ch myspell-de-de
  • languages.indonesian: aspell-id
  • languages.italian: myspell-it
  • languages.hebrew: myspell-he
  • languages.persian: myspell-fa
  • languages.polish: aspell-pl
  • languages.portuguese: myspell-pt
  • languages.spanish: myspell-es
  • languages.ukrainian: myspell-uk
  • languages.vietnamese: hunspell-vi

Authors

Aaron Halfaker:
Helder:
Adam Roses Wight:

Amir Sarabadani: * https://github.com/Ladsgroup

About

A generic, machine learning-based revision scoring system for MediaWiki

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.1%
  • Jupyter Notebook 1.9%