### Install CAMeL Tools from Source Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs CAMeL Tools from its source code repository. Includes cloning the repo and installing using pip. ```bash # Clone the repo git clone https://github.com/CAMeL-Lab/camel_tools.git cd camel_tools # Install from source pip install . # or run the following if you already have camel_tools installed pip install --upgrade . ``` -------------------------------- ### Install CAMeL Tools with PyTorch on Windows Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs camel-tools on Windows, including PyTorch wheels. Use --upgrade if camel-tools is already installed. ```bash pip install camel-tools -f https://download.pytorch.org/whl/torch_stable.html # or run the following if you already have camel_tools installed pip install --upgrade -f https://download.pytorch.org/whl/torch_stable.html camel-tools ``` -------------------------------- ### Install CAMeL Tools from Source on Windows Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs CAMeL Tools from source on Windows, including PyTorch wheels. Includes cloning the repo and installing using pip. ```bash # Clone the repo git clone https://github.com/CAMeL-Lab/camel_tools.git cd camel_tools # Install from source pip install -f https://download.pytorch.org/whl/torch_stable.html . pip install --upgrade -f https://download.pytorch.org/whl/torch_stable.html . ``` -------------------------------- ### Install Dependencies and Build HTML Docs Source: https://github.com/camel-lab/camel_tools/blob/master/README.rst Install necessary dependencies and build the HTML documentation locally. Navigate to the 'docs' subdirectory before running the build command. ```bash # Install dependencies pip install sphinx myst-parser sphinx-rtd-theme # Go to docs subdirectory cd docs # Build HTML docs make html ``` -------------------------------- ### Install All CAMeL Tools Datasets Source: https://github.com/camel-lab/camel_tools/blob/master/README.rst Installs all available datasets required by CAMeL Tools components. ```bash camel_data -i all ``` -------------------------------- ### Example Usage Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/utils/transliterate.md Demonstrates how to instantiate the Transliterator class and use its transliterate method with different options. ```APIDOC ```python from camel_tools.utils.charmap import CharMapper from camel_tools.utils.transliterate import Transliterator # Instantiate the builtin bw2ar (Buckwalter to Arabic) CharMapper bw2ar = CharMapper.builtin_mapper('bw2ar') # Instantiate Transliterator with the bw2ar CharMapper with '@@IGNORE@@' marker (default) bw2ar_translit = Transliterator(bw2ar) # String to transliterate sentence_bw = 'Al>um~u madrasapN aEdadtahA >aEdadta $aEbAF Tay~iba Al>aErAqi @@IGNORE@@#womenInSTEM' # Generate Arabic transliteration from BW sentence_ar = bw2ar_translit.transliterate(sentence_bw) # Generate Arabic transliteration from BW and strip @@IGNORE@@ marker sentence_ar_stripped = bw2ar_translit.transliterate(sentence_ar, strip_markers=True) # Print results print('Original sentence:\n\t', sentence_bw) print('Buckwalter encoded sentence:\n\t', sentence_ar) print('Buckwalter encoded sentence + stripped markers:\n\t', sentence_ar_stripped) ``` ``` -------------------------------- ### Install Default CAMeL Tools Datasets Source: https://github.com/camel-lab/camel_tools/blob/master/README.rst Installs the default set of datasets for each component of CAMeL Tools. ```bash camel_data -i defaults ``` -------------------------------- ### Install CAMeL Tools Data Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs CAMeL Tools datasets. Options include installing all, a light set, or default datasets. ```bash # To install all datasets camel_data -i all # or just the datasets for morphology and MLE disambiguation only camel_data -i light # or just the default datasets for each component camel_data -i defaults ``` -------------------------------- ### Install CAMeL Tools using pip Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs the camel-tools package using pip. Use the --upgrade flag if camel-tools is already installed. ```bash pip install camel-tools # or run the following if you already have camel_tools installed pip install camel-tools --upgrade ``` -------------------------------- ### Install Python Versions for Testing Source: https://github.com/camel-lab/camel_tools/blob/master/CONTRIBUTING.rst Commands to install specific Python versions for testing using pyenv. Ensure pyenv is installed before running these commands. ```bash pyenv install 3.11.7 pyenv install 3.12.3 pyenv install 3.13.0 ``` -------------------------------- ### Install Dependencies on macOS Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs CMake and Boost using Homebrew on macOS systems. ```bash brew install cmake boost ``` -------------------------------- ### Install Light Set of CAMeL Tools Datasets Source: https://github.com/camel-lab/camel_tools/blob/master/README.rst Installs only the morphology and MLE disambiguation datasets for CAMeL Tools. ```bash camel_data -i light ``` -------------------------------- ### Install Python Versions with pyenv Source: https://github.com/camel-lab/camel_tools/blob/master/CONTRIBUTING.rst Installs specific Python versions required for testing. Ensure pyenv is installed and configured before running these commands. ```bash pyenv install 3.11 pyenv install 3.12 pyenv install 3.13 pyenv install 3.14 ``` -------------------------------- ### Camel Morphology Generate Mode Output Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_morphology.md This is an example of the output generated by `camel_morphology` in generate mode. Each line starting with '#LEMMA:' indicates the input lemma, followed by detailed feature-value pairs for each possible inflection. 'NO_ANALYSIS' is shown if no inflections can be generated. ```none #LEMMA: شارِع diac:شارِعُونَ lex:شارِع_2 caphi:sh_aa_r_i_3_uu_n_a gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ُونَ/NSUFF_MASC_PL_NOM pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ُونَ prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:i cas:n enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعُونَ atbseg:شارِعُونَ d2seg:شارِعُونَ d1seg:شارِعُونَ d1tok:شارِعُونَ d2tok:شارِعُونَ atbtok:شارِعُونَ d3tok:شارِعُونَ pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شارِعِينَ lex:شارِع_2 caphi:sh_aa_r_i_3_ii_n_a gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ِيْنَ/NSUFF_MASC_PL_GEN pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ِينَ prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:i cas:g enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعِينَ atbseg:شارِعِينَ d2seg:شارِعِينَ d1seg:شارِعِينَ d1tok:شارِعِينَ d2tok:شارِعِينَ atbtok:شارِعِينَ d3tok:شارِعِينَ pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شارِعِينَ lex:شارِع_2 caphi:sh_aa_r_i_3_ii_n_a gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ِيْنَ/NSUFF_MASC_PL_ACC pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ِينَ prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:i cas:a enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعِينَ atbseg:شارِعِينَ d2seg:شارِعِينَ d1seg:شارِعِينَ d1tok:شارِعِينَ d2tok:شارِعِينَ atbtok:شارِعِينَ d3tok:شارِعِينَ pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شارِعِي lex:شارِع_2 caphi:sh_aa_r_i_3_ii gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ِي/NSUFF_MASC_PL_GEN_POSS pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ِي prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:c cas:g enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعِي atbseg:شارِعِي d2seg:شارِعِي d1seg:شارِعِي d1tok:شارِعِي d2tok:شارِعِي atbtok:شارِعِي d3tok:شارِعِي pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شارِعِي lex:شارِع_2 caphi:sh_aa_r_i_3_ii gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ِي/NSUFF_MASC_PL_ACC_POSS pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ِي prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:c cas:a enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعِي atbseg:شارِعِي d2seg:شارِعِي d1seg:شارِعِي d1tok:شارِعِي d2tok:شارِعِي atbtok:شارِعِي d3tok:شارِعِي pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شارِعُو lex:شارِع_2 caphi:sh_aa_r_i_3_u_w gloss:legislator+[masc.pl.] bw:شارِع/NOUN+ُو/NSUFF_MASC_PL_NOM_POSS pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1ا2ِ3ُو prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:p num:p stt:c cas:n enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:شارِعُو atbseg:شارِعُو d2seg:شارِعُو d1seg:شارِعُو d1tok:شارِعُو d2tok:شارِعُو atbtok:شارِعُو d3tok:شارِعُو pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:شَوارِعَ lex:شارِع_1 caphi:sh_a_w_aa_r_i_3_a gloss:streets+[def.acc.] bw:شَوارِع/NOUN+َ/CASE_DEF_ACC pos:noun catib6:+NOM+ ud:+NOUN+ root:ش.ر.ع pattern:1َوا2ِ3َ prc3:0 prc2:0 prc1:0 prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:s num:p stt:c cas:a enc0:0 rat:i source:lex stem:شَوارِع stemcat:Ndip stemgloss:streets d3seg:شَوارِعَ atbseg:شَوارِعَ d2seg:شَوارِعَ d1seg:شَوارِعَ d1tok:شَوارِعَ d2tok:شَوارِعَ atbtok:شَوارِعَ d3tok:شَوارِعَ pos_freq:-0.4344233 lex_freq:-3.604671 pos_lex_freq:-3.604671 ``` -------------------------------- ### Generator Usage Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/generator.md Example demonstrating how to initialize the MorphologyDB, create a Generator instance, and use the generate method with a lemma and features. ```APIDOC ## Examples ```python from camel_tools.morphology.database import MorphologyDB from camel_tools.morphology.generator import Generator # Initialize database in generation mode db = MorphologyDB.builtin_db(flags='g') # Create generator instance generator = Generator(db) # Specify lemma and features to generate for lemma = 'شارِع' features = { 'pos': 'noun', 'gen': 'm', 'num': 'p' } # Generate analyses for lemma and features analyses = generator.generate(lemma, features) ``` ``` -------------------------------- ### Install Tox for Testing Source: https://github.com/camel-lab/camel_tools/blob/master/CONTRIBUTING.rst Installs the tox testing tool, which is used to automate and standardize testing in Python projects. This command should be run after installing the necessary Python versions. ```bash pip install tox ``` -------------------------------- ### Install CAMeL Tools on Apple Silicon Macs Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs camel-tools on Apple Silicon Macs, specifying the architecture. Use --upgrade if already installed. ```bash CMAKE_OSX_ARCHITECTURES=arm64 pip install camel-tools # or run the following if you already have camel_tools installed CMAKE_OSX_ARCHITECTURES=arm64 pip install camel-tools --upgrade ``` -------------------------------- ### Example Usage Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/disambig/mle.md Demonstrates how to load and use the default pre-trained MLE model for sentence disambiguation. ```APIDOC ## Example Usage Below is an example of how to load and use the default pre-trained MLE model to disambiguate words in a sentence. ```python from camel_tools.disambig.mle import MLEDisambiguator mle = MLEDisambiguator.pretrained() # We expect a sentence to be whitespace/punctuation tokenized beforehand. # We provide a simple whitespace and punctuation tokenizer as part of camel_tools. # See camel_tools.tokenizers.word.simple_word_tokenize. sentence = ['سوف', 'نقرأ', 'الكتب'] disambig = mle.disambiguate(sentence) # Let's, for example, use the top disambiguations to generate a diacritized # version of the above sentence. # Note that, in practice, you'll need to make sure that each word has a # non-zero list of analyses. diacritized = [d.analyses[0].analysis['diac'] for d in disambig] print(' '.join(diacritized)) ``` ``` -------------------------------- ### Tokenization Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_word_tokenize.md Demonstrates how the camel_word_tokenize tool processes text by splitting words from punctuation and collapsing spaces. It handles both English and Arabic text. ```none Hello, world!!!! مرحبا يا عالم!!! ``` ```none Hello , world ! ! ! ! مرحبا يا عالم ! ! ! ``` -------------------------------- ### Install Dependencies on Ubuntu/Debian Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/getting_started.md Installs CMake and Boost development libraries required for CAMeL Tools on Ubuntu/Debian systems. ```bash sudo apt-get install cmake libboost-all-dev ``` -------------------------------- ### Analyze Mode Input Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_morphology.md Provide space-separated words and punctuation to the `analyze` command for morphological analysis. ```bash $ camel_morphology analyze مشيت في الشارع ``` -------------------------------- ### Reinflect Mode Output Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_morphology.md This is an example of the output generated by `camel_morphology` in reinflect mode for the input 'شوارع gen:m num:d prc1:bi_prep'. Each block represents a different analysis of the reinflected word. ```none #WORD: شوارع diac:بِشارِعَيْنِ lex:شارِع_1 caphi:b_i_sh_aa_r_i_3_a_y_n_i gloss:by;with+street+two bw:بِ/PREP+شارِع/NOUN+َيْنِ/NSUFF_MASC_DU_GEN pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْنِ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:i cas:g enc0:0 rat:i source:lex stem:شارِع stemcat:Ndu stemgloss:street d3seg:بِ+_شارِعَيْنِ atbseg:بِ+_شارِعَيْنِ d2seg:بِ+_شارِعَيْنِ d1seg:بِشارِعَيْنِ d1tok:بِشارِعَيْنِ d2tok:بِ+_شارِعَيْنِ atbtok:بِ+_شارِعَيْنِ d3tok:بِ+_شارِعَيْنِ pos_freq:-0.4344233 lex_freq:-3.604671 pos_lex_freq:-3.604671 diac:بِشارِعَيْنِ lex:شارِع_1 caphi:b_i_sh_aa_r_i_3_a_y_n_i gloss:by;with+street+two bw:بِ/PREP+شارِع/NOUN+َيْنِ/NSUFF_MASC_DU_ACC pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْنِ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:i cas:a enc0:0 rat:i source:lex stem:شارِع stemcat:Ndu stemgloss:street d3seg:بِ+_شارِعَيْنِ atbseg:بِ+_شارِعَيْنِ d2seg:بِ+_شارِعَيْنِ d1seg:بِشارِعَيْنِ d1tok:بِشارِعَيْنِ d2tok:بِ+_شارِعَيْنِ atbtok:بِ+_شارِعَيْنِ d3tok:بِ+_شارِعَيْنِ pos_freq:-0.4344233 lex_freq:-3.604671 pos_lex_freq:-3.604671 diac:بِشارِعَيْ lex:شارِع_1 caphi:b_i_sh_aa_r_i_3_a_y gloss:by;with+street+two bw:بِ/PREP+شارِع/NOUN+َيْ/NSUFF_MASC_DU_GEN_POSS pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:c cas:g enc0:0 rat:i source:lex stem:شارِع stemcat:Ndu stemgloss:street d3seg:بِ+_شارِعَيْ atbseg:بِ+_شارِعَيْ d2seg:بِ+_شارِعَيْ d1seg:بِشارِعَيْ d1tok:بِشارِعَيْ d2tok:بِ+_شارِعَيْ atbtok:بِ+_شارِعَيْ d3tok:بِ+_شارِعَيْ pos_freq:-0.4344233 lex_freq:-3.604671 pos_lex_freq:-3.604671 diac:بِشارِعَيْ lex:شارِع_1 caphi:b_i_sh_aa_r_i_3_a_y gloss:by;with+street+two bw:بِ/PREP+شارِع/NOUN+َيْ/NSUFF_MASC_DU_ACC_POSS pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:c cas:a enc0:0 rat:i source:lex stem:شارِع stemcat:Ndu stemgloss:street d3seg:بِ+_شارِعَيْ atbseg:بِ+_شارِعَيْ d2seg:بِ+_شارِعَيْ d1seg:بِشارِعَيْ d1tok:بِشارِعَيْ d2tok:بِ+_شارِعَيْ atbtok:بِ+_شارِعَيْ d3tok:بِ+_شارِعَيْ pos_freq:-0.4344233 lex_freq:-3.604671 pos_lex_freq:-3.604671 diac:بِشارِعَيْنِ lex:شارِع_2 caphi:b_i_sh_aa_r_i_3_a_y_n_i gloss:by;with+legislator+two bw:بِ/PREP+شارِع/NOUN+َيْنِ/NSUFF_MASC_DU_GEN pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْنِ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:i cas:g enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:بِ+_شارِعَيْنِ atbseg:بِ+_شارِعَيْنِ d2seg:بِ+_شارِعَيْنِ d1seg:بِشارِعَيْنِ d1tok:بِشارِعَيْنِ d2tok:بِ+_شارِعَيْنِ atbtok:بِ+_شارِعَيْنِ d3tok:بِ+_شارِعَيْنِ pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 diac:بِشارِعَيْنِ lex:شارِع_2 caphi:b_i_sh_aa_r_i_3_a_y_n_i gloss:by;with+legislator+two bw:بِ/PREP+شارِع/NOUN+َيْنِ/NSUFF_MASC_DU_ACC pos:noun catib6:PRT+NOM+ ud:ADP+NOUN+ root:ش.ر.ع pattern:بِ1ا2ِ3َيْنِ prc3:0 prc2:0 prc1:bi_prep prc0:0 per:na asp:na vox:na mod:na form_gen:m gen:m form_num:d num:d stt:i cas:a enc0:0 rat:i source:lex stem:شارِع stemcat:Nall stemgloss:legislator d3seg:بِ+_شارِعَيْنِ atbseg:بِ+_شارِعَيْنِ d2seg:بِ+_شارِعَيْنِ d1seg:بِشارِعَيْنِ d1tok:بِشارِعَيْنِ d2tok:بِ+_شارِعَيْنِ atbtok:بِ+_شارِعَيْنِ d3tok:بِ+_شارِعَيْنِ pos_freq:-0.4344233 lex_freq:-99.0 pos_lex_freq:-99.0 ``` -------------------------------- ### Analyze Mode Output Example Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_morphology.md The output details morphological analyses for each input word, including diacritization, lemma, and feature-value pairs. 'NO_ANALYSIS' is shown if no analysis is found. An empty line follows each word's analysis and the end of the input. ```text #WORD: مشيت diac:مَشَّيْتَ lex:مَشَّى_1 caphi:m_a_sh_sh_a_y_t_a gloss:make_walk;adjust+you_[masc.sg.]_ bw:مَشَّي/PV+تَ/PVSUFF_SUBJ:2MS pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َّيْتَ prc3:0 prc2:0 prc1:0 prc0:0 per:2 asp:p vox:a mod:i form_gen:m gen:m form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَّي stemcat:PV_Atn stemgloss:make_walk;adjust d1seg:مَشَّيْتَ atbseg:مَشَّيْتَ d2seg:مَشَّيْتَ d3seg:مَشَّيْتَ d1tok:مَشَّيْتَ d2tok:مَشَّيْتَ atbtok:مَشَّيْتَ d3tok:مَشَّيْتَ pos_logprob:-1.023208 lex_logprob:-99.0 pos_lex_logprob:-99.0 diac:مَشَّيْتِ lex:مَشَّى_1 caphi:m_a_sh_sh_a_y_t_i gloss:make_walk;adjust+you_[fem.sg.]_ bw:مَشَّي/PV+تِ/PVSUFF_SUBJ:2FS pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َّيْتِ prc3:0 prc2:0 prc1:0 prc0:0 per:2 asp:p vox:a mod:i form_gen:f gen:f form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَّي stemcat:PV_Atn stemgloss:make_walk;adjust d1seg:مَشَّيْتِ atbseg:مَشَّيْتِ d2seg:مَشَّيْتِ d3seg:مَشَّيْتِ d1tok:مَشَّيْتِ d2tok:مَشَّيْتِ atbtok:مَشَّيْتِ d3tok:مَشَّيْتِ pos_logprob:-1.023208 lex_logprob:-99.0 pos_lex_logprob:-99.0 diac:مَشَّيْتُ lex:مَشَّى_1 caphi:m_a_sh_sh_a_y_t_u gloss:make_walk;adjust+I_ bw:مَشَّي/PV+تُ/PVSUFF_SUBJ:1S pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َّيْتُ prc3:0 prc2:0 prc1:0 prc0:0 per:1 asp:p vox:a mod:i form_gen:m gen:m form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَّي stemcat:PV_Atn stemgloss:make_walk;adjust d1seg:مَشَّيْتُ atbseg:مَشَّيْتُ d2seg:مَشَّيْتُ d3seg:مَشَّيْتُ d1tok:مَشَّيْتُ d2tok:مَشَّيْتُ atbtok:مَشَّيْتُ d3tok:مَشَّيْتُ pos_logprob:-1.023208 lex_logprob:-99.0 pos_lex_logprob:-99.0 diac:مَشَيْتَ lex:مَشَى-i_1 caphi:m_a_sh_a_y_t_a gloss:walk;proceed+you_[masc.sg.]_ bw:مَشَي/PV+تَ/PVSUFF_SUBJ:2MS pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َيْتَ prc3:0 prc2:0 prc1:0 prc0:0 per:2 asp:p vox:a mod:i form_gen:m gen:m form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَي stemcat:PV_Atn stemgloss:walk;proceed d1seg:مَشَيْتَ atbseg:مَشَيْتَ d2seg:مَشَيْتَ d3seg:مَشَيْتَ d1tok:مَشَيْتَ d2tok:مَشَيْتَ atbtok:مَشَيْتَ d3tok:مَشَيْتَ pos_logprob:-1.023208 lex_logprob:-4.587637 pos_lex_logprob:-4.587637 diac:مَشَيْتِ lex:مَشَى-i_1 caphi:m_a_sh_a_y_t_i gloss:walk;proceed+you_[fem.sg.]_ bw:مَشَي/PV+تِ/PVSUFF_SUBJ:2FS pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َيْتِ prc3:0 prc2:0 prc1:0 prc0:0 per:2 asp:p vox:a mod:i form_gen:f gen:f form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَي stemcat:PV_Atn stemgloss:walk;proceed d1seg:مَشَيْتِ atbseg:مَشَيْتِ d2seg:مَشَيْتِ d3seg:مَشَيْتِ d1tok:مَشَيْتِ d2tok:مَشَيْتِ atbtok:مَشَيْتِ d3tok:مَشَيْتِ pos_logprob:-1.023208 lex_logprob:-4.587637 pos_lex_logprob:-4.587637 diac:مَشَيْتُ lex:مَشَى-i_1 caphi:m_a_sh_a_y_t_u gloss:walk;proceed+I_ bw:مَشَي/PV+تُ/PVSUFF_SUBJ:1S pos:verb catib6:+VRB+ ud:+VERB+ root:م.ش.# pattern:1َ2َيْتُ prc3:0 prc2:0 prc1:0 prc0:0 per:1 asp:p vox:a mod:i form_gen:m gen:m form_num:s num:s stt:na cas:na enc0:0 rat:n source:lex stem:مَشَي stemcat:PV_Atn stemgloss:walk;proceed d1seg:مَشَيْتُ atbseg:مَشَيْتُ d2seg:مَشَيْتُ d3seg:مَشَيْتُ d1tok:مَشَيْتُ d2tok:مَشَيْتُ atbtok:مَشَيْتُ d3tok:مَشَيْتُ pos_logprob:-1.023208 lex_logprob:-4.587637 pos_lex_logprob:-4.587637 #WORD: في diac:فِي lex:فِي_2 caphi:f_ii gloss:V. bw:ڤِي/ABBREV pos:abbrev catib6:+NOM+ ud:+NOUN+ root:NTWS pattern:NTWS prc3:na prc2:na prc1:na prc0:na per:na asp:na vox:na mod:na form_gen:na gen:na form_num:na num:na stt:na cas:na enc0:na rat:na source:lex stem:فِي stemcat:FW stemgloss:V. d1seg:فِي atbseg:فِي d2seg:فِي d3seg:فِي d1tok:فِي d2tok:فِي atbtok:فِي d3tok:فِي pos_logprob:-2.268772 lex_logprob:-4.078331 pos_lex_logprob:-4.078331 ``` -------------------------------- ### Load and Use Default Sentiment Analyzer Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/sentiment.md Demonstrates loading the default pre-trained sentiment analysis model and performing predictions on single and multiple sentences. Ensure the 'camel_tools' library is installed. ```python from camel_tools.sentiment import SentimentAnalyzer sa = SentimentAnalyzer.pretrained() # Predict the sentiment of a single sentence sentiment = sa.predict_sentence('أنا بخير') # Predict the sentiment of multiple sentences sentences = [ 'أنا بخير', 'أنا لست بخير' ] sentiments = sa.predict(sentences) ``` -------------------------------- ### Analyze a Single Word Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/analyzer.md Illustrates how to use the analyze() method of the Analyzer class to get morphological analyses for a given word. The result is a list of dictionaries, each representing an analysis. ```python # To analyze a word, we can use the analyze() method analyses = analyzer.analyze('شارع') ``` -------------------------------- ### Initialize Default and Built-in Morphology Databases Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/database.md Demonstrates initializing the default 'calima-msa-r13' database and other built-in databases like 'calima-egy-r13'. Shows how to load databases for analysis ('a'), generation ('g'), reinflection ('r'), or combined modes ('ag'). ```python from camel_tools.morphology.database import MorphologyDB # Initialize the default database ('calima-msa-r13') db = MorphologyDB.builtin_db() # In the above call, the database is loaded for analysis only by defaut. # This is equivalent to writing: db = MorphologyDB.builtin_db(flags='a') # We can load it for generation as so: db = MorphologyDB.builtin_db(flags='g') # Or for reinflection as so: db = MorphologyDB.builtin_db(flags='r') # Since reinflection uses the database in both analysis and generation modes # internally, the above is equivalent to writing: db = MorphologyDB.builtin_db(flags='ag') # We can initialize other builtin databases by providing the name of the # desired database. In the examples above, we loaded the default database # 'calima-msa-r13'. We can load other builtin databases by providing the # desired databases name. Here we'll load the builtin Egyptian database, # 'calima-egy-r13': db = MorphologyDB.builtin_db('calima-egy-r13') # Or with flags: db = MorphologyDB.builtin_db('calima-egy-r13', flags='r') ``` -------------------------------- ### Initialize Analyzer with Default Settings Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/analyzer.md Demonstrates creating an Analyzer instance using the default built-in database and no backoff strategy. Ensure MorphologyDB is imported. ```python from camel_tools.morphology.database import MorphologyDB from camel_tools.morphology.analyzer import Analyzer db = MorphologyDB.builtin_db() # Create analyzer with no backoff analyzer = Analyzer(db) ``` -------------------------------- ### Initialize and Use MorphologicalTokenizer Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/tokenizers/morphological.md Demonstrates initializing MorphologicalTokenizer with different disambiguators and schemes for both Modern Standard Arabic (MSA) and Egyptian Arabic (EGY). It shows how to tokenize sentences and prints the results for various schemes. ```python from camel_tools.disambig.mle import MLEDisambiguator from camel_tools.tokenizers.morphological import MorphologicalTokenizer # Initialize disambiguators mle_msa = MLEDisambiguator.pretrained('calima-msa-r13') mle_egy = MLEDisambiguator.pretrained('calima-egy-r13') # We expect a sentence to be whitespace/punctuation tokenized beforehand. # We provide a simple whitespace and punctuation tokenizer as part of camel_tools. # See camel_tools.tokenizers.word.simple_word_tokenize. sentence_msa = ['فتنفست', 'الصعداء'] sentence_egy = ['وكاتباله', 'مكتوبين'] # Create different morphological tokenizer instances msa_d3_tokenizer = MorphologicalTokenizer(disambiguator=mle_msa, scheme='d3tok') msa_atb_tokenizer = MorphologicalTokenizer(disambiguator=mle_msa, scheme='atbtok') msa_bw_tokenizer = MorphologicalTokenizer(disambiguator=mle_msa, scheme='bwtok') egy_bw_tokenizer = MorphologicalTokenizer(disambiguator=mle_egy, scheme='bwtok') # Generate tokenizations # Note that our Egyptian resources currently provide bwtok tokenization only. msa_d3_tok = msa_d3_tokenizer.tokenize(sentence_msa) msa_atb_tok = msa_atb_tokenizer.tokenize(sentence_msa) msa_bw_tok = msa_bw_tokenizer.tokenize(sentence_msa) egy_bw_tok = egy_bw_tokenizer.tokenize(sentence_egy) # Print results print('D3 tokenization (MSA):', msa_d3_tok) print('ATB tokenization (MSA):', msa_atb_tok) print('BW tokenization (MSA):', msa_bw_tok) print('BW tokenization (EGY):', egy_bw_tok) ``` -------------------------------- ### Initialize Reinflector and Generate Analyses Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/reinflector.md Demonstrates how to initialize the Reinflector with a built-in database and generate morphological analyses for a given word and features. Ensure the database is opened in reinflection mode. ```python from camel_tools.morphology.database import MorphologyDB from camel_tools.morphology.reinflector import Reinflector # Initialize database in reinflection mode db = MorphologyDB.builtin_db(flags='r') # Create reinflector instance reinflector = Reinflector(db) # Specify word and features to generate for word = 'شوارع' features = { 'gen': 'm', 'num': 'd', 'prc1': 'bi_prep' } # Generate analyses for lemma and features analyses = reinflector.reinflect(word, features) ``` -------------------------------- ### Initialize External Morphology Database Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/database.md Shows how to initialize an external morphology database from a specified file path. Supports loading with operational flags for analysis, generation, or reinflection. ```python # We can initialize external databases: db = MorphologyDB('/path/to/database') # or with flags: db = MorphologyDB('/path/to/database', flags='g') ``` -------------------------------- ### Initialize Analyzer with Backoff Strategy Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/analyzer.md Shows how to initialize the Analyzer with a specific backoff strategy like 'NOAN_PROP'. The backoff parameter can be passed as a positional or keyword argument. ```python # Create analyzer with NOAN_PROP backoff analyzer = Analyzer(db, 'NOAN_PROP') # or analyzer = Analyzer(db, backoff='NOAN_PROP') ``` -------------------------------- ### camel_word_tokenize Usage Information Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/cli/camel_word_tokenize.md Displays the command-line options and arguments for the camel_word_tokenize tool, including output file specification, version, and help. ```none Usage: camel_word_tokenize [-o OUTPUT | --output=OUTPUT] [FILE] camel_word_tokenize (-v | --version) camel_word_tokenize (-h | --help) Options: -o OUTPUT --output=OUTPUT Output file. If not specified, output will be printed to stdout. -h --help Show this screen. -v --version Show version. ``` -------------------------------- ### Initialize and Use DefaultTagger Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/tagger/default.md Demonstrates how to initialize the DefaultTagger with a pre-trained disambiguator and a specific feature, then use it to tag a sentence. ```python from camel_tools.disambig.mle import MLEDisambiguator from camel_tools.tagger.default import DefaultTagger mled = MLEDisambiguator.pretrained() tagger = DefaultTagger(mled, 'pos') tagger.tag('ذهبت الى المدرسة'.split()) ``` -------------------------------- ### Initialize and Use Generator Source: https://github.com/camel-lab/camel_tools/blob/master/docs/source/api/morphology/generator.md Demonstrates how to initialize the MorphologyDB in generation mode, create a Generator instance, and use it to generate morphological analyses for a given lemma and features. Ensure the database is opened with the 'g' flag for generation. ```python from camel_tools.morphology.database import MorphologyDB from camel_tools.morphology.generator import Generator # Initialize database in generation mode db = MorphologyDB.builtin_db(flags='g') # Create generator instance generator = Generator(db) # Specify lemma and features to generate for lemma = 'شارِع' features = { 'pos': 'noun', 'gen': 'm', 'num': 'p' } # Generate analyses for lemma and features analyses = generator.generate(lemma, features) ```