Skip to main content

Driver for LIWC2015 analysis. LIWC2015 dictionary not included.

Project description

liwc-analysis

This package serves as a driver for the LIWC2015 .txt dictionary. The dictionary is not included and can be purchased directly from LIWC.

Usage

The usage is fairly straight forward. First import the package

import liwcanalysis

Then you need to create an instance of the LIWC analysis with the path to the .txt file.

LIWCLocation = "/Users/Eric/repositories/transcript-analysis/LIWC/LIWC.2015.all.txt"
LIWC = liwcanalysis.liwc(LIWCLocation)

Then you can pass in a list of strings to analyze to receive a tuple of results dictionary and count dictionary.

transcripts = {
    "Example1": "This is a single transcript. Red hat angry.",
    "Example2": "This is another single transcript. Dog boy cat.",
}

str_list = []
for key in transcripts:
    str_list.append(transcripts[key])

result_dics, count_dics = LIWC.analyze(str_list)

Please note that analyze() can take either a single string argument or a list of strings. Example:

# this is valid
result_dics, coutn_dics = LIWC.analyze(["this is a string", "here is another", "one more"])
# this is also valid
result_dics, coutn_dics = LIWC.analyze("this is a string")

result_dics is a list of dictionaries. Each dictionary corresponds to one of the strings passed into analyze. Each dictionary follows the form of "LIWC Category": [list, of, words, matched]. For instance the dictionary for one string might look something like:

{
    "FUNCTION": ["is", "a"],
    "QUANT": ["single"],
    ...
}

count_dics is very similar to result_dics, but instead of giving a list of words matched, it gives the length of each list of words matched:

{
    "FUNCTION": 2,
    "QUANT": 1,
    ...
}

Finally, you can print out the results to csv using:

LIWC.print(output_dir, titles)

You need to specify the output directory, as well as a list of titles for each string. See the full example for more details.

You can also retrieve an alphabetically sorted (A->Z) list of LIWC categories using LIWC.get_categories().

Full Example

import liwcanalysis

transcripts = {
    "Example1": "This is a single transcript. Red hat angry.",
    "Example2": "This is another single transcript. Dog boy cat.",
}

str_list = []
for key in transcripts:
    strs.append(transcripts[key])

LIWCLocation = "/Users/Downloads/LIWC/LIWC.2015.all.txt"
output_dir = "/Path/to/my/file/"

LIWC = liwcanalysis.liwc(LIWCLocation)
result_dics, count_dics = LIWC.analyze(str_list)
LIWC.print(output_dir, list(transcript.keys()))

Using print will return the following tables: /Path/to/my/file/LIWCcounts.csv:

Category Example1 Example2
ADJ 1 1
ARTICLE 1
AUXVERB 1 1
FOCUSPRESENT 1 1
FUNCTION 2 2
IPRON 1
MALE 1
NUMBER 1 1
PRONOUN 1
QUANT 1 2
SOCIAL 1
VERB 1 1
WORK 1 1
TOTAL 8 8

/Path/to/my/file/LIWCwords.csv:

Category Example1 Example2
ADJ ['single'] ['single']
ARTICLE ['a']
AUXVERB ['is'] ['is']
FOCUSPRESENT ['is'] ['is']
FUNCTION ['is', 'a'] ['is', 'another']
IPRON ['another']
MALE ['boy']
NUMBER ['single'] ['single']
PRONOUN ['another']
QUANT ['single'] ['another', 'single']
SOCIAL ['boy']
VERB ['is'] ['is']
WORK ['transcript.'] ['transcript.']

/Path/to/my/file/LIWCrelativefreq.csv

Category Example1 Example2
ADJ 0.125 0.125
ARTICLE 0.125
AUXVERB 0.125 0.125
FOCUSPRESENT 0.125 0.125
FUNCTION 0.25 0.25
IPRON 0.125
MALE 0.125
NUMBER 0.125 0.125
PRONOUN 0.125
QUANT 0.125 0.25
SOCIAL 0.125
VERB 0.125 0.125
WORK 0.125 0.125

Please let me know if you have any questions or features requests. Please feel free to open up a pull request, issue, or shoot me an email at ericwiener3@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

liwc-analysis-1.2.4.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

liwc_analysis-1.2.4-py2.py3-none-any.whl (5.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file liwc-analysis-1.2.4.tar.gz.

File metadata

  • Download URL: liwc-analysis-1.2.4.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

File hashes

Hashes for liwc-analysis-1.2.4.tar.gz
Algorithm Hash digest
SHA256 22e336a266e5f1051f39e26b1b355c1d19fe4e6ffa1f087bbc2d70b14d2c261f
MD5 48166449e59e7d1fbd196dfe5943b2b6
BLAKE2b-256 05b11f367c0af8d04cc3f21324638ed0835187e19405058974084601d93c9866

See more details on using hashes here.

File details

Details for the file liwc_analysis-1.2.4-py2.py3-none-any.whl.

File metadata

  • Download URL: liwc_analysis-1.2.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

File hashes

Hashes for liwc_analysis-1.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ec942be71f27f795c8ed2b381e81c77c645158545da46348d17df4c3a5e299a9
MD5 e763798a9b87e73c83f1199265ad2f2b
BLAKE2b-256 ebb5bce45c2c5fe37a3e1a49fa2bd06f4971a890e30d07833891084c0bf96401

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page