From 1c72695cee79a49d948346d6850bb74123937c9a Mon Sep 17 00:00:00 2001 From: Xinlan Emily Hu Date: Mon, 23 Sep 2024 17:53:01 -0400 Subject: [PATCH] Check embedding update (#295) * Add Examples Notebook (#294) * Urgent fix to remove LIWC lexicons from public repo (#279) * delete small test lexicons * move .pkl files to assets and remove from GH * filesystem cleanup * update certainty pickle location * remove unpickling certainty * remove lexicons from pyproject * change lexical pkl path * add error handling when lexicons are not found * update warning message * add legal caveat and update name of certainty pkl to be correct * ensure lexicons are ignored * Update Documentation (Complete Conceptual Documentation, Document Assumptions) (#289) * new docs * lexicons hotfix * emilys doc edits * update deprecated github actions to latest * update last remaining text features * update index * update docs * update index * update docs * update docs and the feature dictionary * add basics.rst * add new basics page * update docs --------- Co-authored-by: Xinlan Emily Hu Co-authored-by: Xinlan Emily Hu * update torch requirements to resolve compatibility issue on torch end (#290) * Update Website (#291) * website updates * renaming tpm-website to website * deploying via gh-pages * changed from tpm-website to website * deployed website * copyright and team * team headshots and footer * edits to the pages * website updates * updated links * updated homepage * link updates * mobile compatibility * mobile adjustments * navbar mobile updates * whitespace edits * homepage updates * feature table * website updates * renaming tpm-website to website * deploying via gh-pages * changed from tpm-website to website * edits to the pages * website updates * updated links * updated homepage * link updates * mobile compatibility * mobile adjustments * navbar mobile updates * homepage updates * add table of features * updated team page titles * include flask in requirements.txt * updates to table of features * load pages from top * fix to 404 issues * moved build under website folder * updates to package launch * hyperlink ./setup.sh * fix nav bar sizing and hamburger logo * include preprint * updates to "getting started" * update team --------- Co-authored-by: amytangzheng * update documentation for clarity and correct typos in positivity z-score and information exchange and liwc * add demo notebook * update notebook and add information to docs * update documentation --------- Co-authored-by: Shruti Agarwal <46203852+agshruti12@users.noreply.github.com> Co-authored-by: amytangzheng * update check embeddings with tqdm loading bar and BERT tokenization update * (1) allow BERT sentiments to be generated from the messages with punctuation, rather than the preprocessed messages; (2) batch BERT sentiment generation to make it more efficient; (3) add loading bar for generation of chat-level features --------- Co-authored-by: Shruti Agarwal <46203852+agshruti12@users.noreply.github.com> Co-authored-by: amytangzheng --- docs/build/doctrees/environment.pickle | Bin 317452 -> 317608 bytes docs/build/doctrees/examples.doctree | Bin 121540 -> 121514 bytes docs/build/doctrees/feature_builder.doctree | Bin 85973 -> 83639 bytes docs/build/doctrees/index.doctree | Bin 20261 -> 20235 bytes .../doctrees/utils/check_embeddings.doctree | Bin 43533 -> 44856 bytes docs/build/html/_sources/examples.rst.txt | 2 +- docs/build/html/_sources/index.rst.txt | 2 +- docs/build/html/examples.html | 2 +- docs/build/html/feature_builder.html | 11 ++- docs/build/html/index.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/build/html/utils/check_embeddings.html | 13 ++-- docs/source/basics.rst | 8 ++- docs/source/examples.rst | 2 +- docs/source/index.rst | 2 +- examples/featurize.py | 26 ++++--- pyproject.toml | 3 +- requirements.txt | 1 + src/team_comm_tools/feature_builder.py | 23 +++--- .../utils/calculate_chat_level_features.py | 5 +- src/team_comm_tools/utils/check_embeddings.py | 68 ++++++++++++------ .../cleaned_data/test_vector_edge_cases.csv | 6 ++ tests/run_package_grouping_tests.py | 52 ++++++++++---- tests/run_tests.py | 28 ++++---- tests/test_feature_metrics.py | 4 +- tests/test_package.py | 48 ++++++++++++- 26 files changed, 219 insertions(+), 91 deletions(-) create mode 100644 tests/data/cleaned_data/test_vector_edge_cases.csv diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 768b4a2eb57f730c631e03ac396ddb02d3ff881b..8993482e537f997cd500025d5f2fa40707c980ef 100644 GIT binary patch literal 317608 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 z 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 diff --git a/docs/build/doctrees/examples.doctree b/docs/build/doctrees/examples.doctree index 689512735f6012039269f494680c53229895fc18..06563bc865e562c6b2d0eb8f5b003f6778a1a6e1 100644 GIT binary patch delta 47 zcmX@Im3`G#c9sU#sW&&WNI5ZTZI*Y^VdB!9lEEH3CBq;B!f&4Kwtco6qvjLBpNI5Z@ZWy&#_g?O)V}?OixwPoRYyFJ0-&)0wT$a PBH7&Nw!P7fQF96avRWAX diff --git a/docs/build/doctrees/feature_builder.doctree b/docs/build/doctrees/feature_builder.doctree index 66243b7b44971f45c81e20e0aee6c35353d4383b..d1a34a7005983d185737f3c00ba3160f57651179 100644 GIT binary patch delta 3880 zcma)9eQ;FO73bUpHi0Y&$?n_lY&IXj<^w_ki8MlpL_iTp7&~n;4m84c*4F?b5Kt@v zQl_YB6S;vqG6;#5sjZF*0fIC^Xe%;`APS*;wF%gYp#;#5h0e9nKA{1h_0K$h=TrroYT>@5 zGXBfckFZjUsELC-9^btI7VxI-8&J#Fp8145Vc|V}TD$(I7zR({OyO{Sm1WSNpm%0W zFipqR-p(4iJGgnM; zgNe_+oW^=AyzX+U)UQ5}B>-ODd(p$2_ol|Va6RY?#_(}{ zzvU1Atrm)KDU~yD^k+-ZWMc%Mtij3smt_-GWGPhDRBezCrDz`GVuw#lA;aJJal~WlxRkJD$(|ml4 ze$&d6p3mj^?J3rK9P;}T&d=sXz?K=X;XK2@h4PFcOKqL*n9=%8zT~o3yGd7@5xAs@}MR~8EqvKXq%=I z=-RFE?2;xEsQC7Lb34JQ1lo=;N3z>Lx@`t_6~l3+kSE^R4OjSI`fTlI?_34;FPbed z>$jB?C52jb-+c^NoQ)DpBxa#vlkokU!l7}tf$VySx82Rz?1zjvm0f5{*);$(gn%?z z7{=Hnc{w(Nyi%JY?|xgDyd0Y%Z?sJohR2js6**P2r8r<=xI_Vs&ZB8gun92)zAzs^%K^@g z*%W8z$x3l{#-=!nvXY$bwGn5FQ}3XE^Y2r0A?1Klw-c$f4+hqa3feOIv6(0CO$Y2W7$-K|!FL4;2^(X?yy}Qa1 zgcV)mP>Pn0m28u8Y9gm<_G<@<12R7AIYa6_%Vs!b z$^B~vvQUBV-xNA#ptt;>v)r_n@aKHM^2toJd|X<349g+8X*G)%-osj!^5xPRw-QUT zU^Q(?m3z86Bvl7I5VdrhoWwIU37-RIvR9po<5p*w<0hx#xX~%A_95laMGg~r(!1&G zv{P2@e8m1%B{(Tz{OouHT$ceCuH1MQgIo-rBKNXWl6#q8CAsmg5V`TLjqY@be4N7!)HiH+uyyB(bC3)#5P|1tM9pc5}mZDo<45I*V z-kSp@%AwLh3p@*-XZ{KvQicNDXiX!b07Mtlz z_m&b^#B>xgif(-g%rut}m?CGSo5-p zBq#>(>#g{CU8goA;t+_4dri6hsLRH7 zx((vqF~D$l6YLWoPr#T`sog0mi}1B)mkC}GHRE9}bcYc>C4_3Ys%9$Qt+wbC+-UAT zC$MbzER6YSBqqXVvyTRDH~P^S2KIZRK; zHCA$IrC5x35PrpqJRKbmVl5dKz~#o_f%^I-^#W!D#CWq>fqNOWg%^ zSb85-b}GlZgA$JftY^|y{O*novtTQ*vmW7_gW~P>V58y{KbZq#*(s0MHU}pD7lruk A4*&oF delta 4460 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

b%NPiC=jsR~f{$ z#0@@Tz+bm~3;s}Pf|EJZ`L_*tKC(y<4ob`H4r^MM?x$(rH=dOV;*R5U@`#Q_ik2_g zBB0j_s&SE|zPbTpgpvrtQ4-ll=OL0vkpWvGi4+;cJM7NuQHC_Is1`YlZq`?^jov9Ig2uRPDM zPF&_Xbp+lh;r8a{#%3rz8R>cJf&Z)vi-@IN~z4eWC{;_&Y~ z=PfvJs*o2&z-On BcRv6C delta 4496 zcmZ`+dr*|u7585Dz3iecEE-r?KrQcw5H(^HZEZjd4-tmcpg>(&J}U?;qF5_xM8PEm z&Km8|F_x5x@4{@_G^WusX&u`-X&p@*ttAr2^x;ffqfMrd(VlbfF1t)N|9tm;_kQR6 z&N=sY&OP7H$9dm%uI^GF=BLKgLpkubb_1NsNru>MmEHyOcQN>T$2RYxyqgS07Y?%` zZ^fdy41TpB4z{|Z;Pf-EvDHwz*vU7l;p&`puvcq&of@)w>|oA+m+w}?#JXI*Qw`;o zC>qABSx~$rgL~-nTs8m?o{fjH=y15XBzxv7>S@!I2W;B3gUV<4REpFv&}$*FoSH}> zotnsYLgTY*=*8ZZ%eJF@DsNXqSJzxvvGfqXA^|T;Kpe)btN4Tj8~1^k_(|MuOSdR@ zLj$510g^NVUWTfIwe&)OzYYdGy6=593m$wu1GPJ$icZIW{DGp(8x1!6UrLykdcz8x67{24)po zX8ts!8LBg6f6f6bKcj(nd-G`^6Hbx|i3CZybBa3TwEZ-zKr`=l&lpNbfL1ja!SUa z5GrHqDKvwxYWZq9=5#2i*TQ(Iot=ayr3u!PM3bMX@UcOQk2mEEUajx+j+V_}$ikKq z8+=?I$6WBZ{0TcC-bXv)OfLN18S4yl+LUfBe6yk;amosA#uc;ndWSQ9mnYeoP~%aW zweWc1s@NU^a#9kE(2QQYJ&J-0?pZKaHY>{0?o4y85qhN-XN=MU`D^d6(;_0r4;!JZ z@)SRz_5QE&dB)EBRt;w5Eix*uI1D9DXrXLz1N%U1QV@SfL8RQxgI(2~crp~-+Ra9O zPb*Rw2TEbr3pVyx?%9m|zgnbusz~8!Il&e>p2>T8lTW< zr0|cmB8mIAyv!EBoppJ9zD^+GK!`8CXye5?DjK{H2YVW`z>K;Ki}HL(L^dC?YobU8 zWy5?>YRc$^@UnD%yquy$N(X*Bzz6i7$aNVFJt)Y@`w3JQwmw}jJNb{~4l(K&=@j&4 zebBN#l@uU5`GtV++kW9}evMX>vFw?I69s%kM(Oub3n{!3Q24fAA(~4R#WV9!l(%T% zPH7ys=myK|Q5Fh>V5vrrGr>}g_gH;5Di=RP;)iSvSGufG*bp?LoOqyX6a$c+En=ErXjvYFJjl_R>SujPVrK` z;3BV^T#m3QwNjGUSgI#B@^-mRb*NPzOh?|Y7uSg!J;3V(2Ok&t2#MtKVH_k8XS`0f z1rc#I475d(2=S04k%u@C4{;z~^ymdIy7hh@@;^zqn-UHOKM_BZaQ`540K}kin5Uy^{5LaxTA()A*P;4M? z@DjP&mdbJ4CrTyKF)3E>7t3ayxR^o|l;$tPYa9c_wxN6ykft`F2_<}*eC)$B^0N;Q zn%H+1s^OlCr-f%!Si+B-3>=R1*E70g0Xl%XhxP zmlI|>#!Zba(Gj@#-Eh7X>+j+Q80eP7&UuN01NB4K zB*q^IBaIK?9?|#1kT@tpI3$Vm#o-rwEAcWRpf>|R^8kAxZU`r*7+%#cS-B=$V8w?E ze`0Y6!b%7a;S&m;+MmuB3JH}4Kk+w0yijUcIaSN5uh6n*Z}$O|H7u z28YX|ydKIT)iH8~dZJ_Dq9?+E%o!qcBshZj!M{c=5x*5M;075m*%R^ma)&O7zXTNE zN0g^!c%+!|I>_nEV`|9k$;4hNo7wPPCc8N7WlV60&4!#qGTE&-OXX^lUx`e1wiM49 zk?XY_xlXx0WTadlBBqF3FEimxdxf-|NBiZHH?t+P&O4bMo zgYghQ5X&7VO#dVB%q!EOs$)7l8c4?;Dq%3+=|FwHGSER&(H%LvQucVLKT^9@q|D>g z)_9!Vp%&et7Og(9{T`_%MtK?IA!|!7IxcDpSGs*uStLSQ64a;Fn#5(;NdXW=;vCI7 z;Uk!1@|%uVTD^%bL$(*LdFBY?L3P+3=5jh9@9-j>aK!2kxx0eBfmY(Lg{Ue07%U4P zGl_QXH{y6N(ecjBrij>++gz>o=2m-2bCV;*o{?c+>vY%~o3^&Q>>~VyN9=JyvHNmF z#w8YZ`nOD?B;kOif;|-L{V7`ZPZ1vfuiC%J+n}O!&P07)?k!wyuUBqhpBgv`GEANs z;)<8RNraoJJg7(x%3qiR_tRs!O|0>!aKMtGGs}OqcylO3GMDNTnVXuJPkJPON}O>e z?e$Kp`>Cm+u)CV=bxn2O+0p69^aSicc}z)mL*&6FnFsHqPG1vPMJCC5P+_KYG$k#! zZ*2UwtFgJMu5|}|F%&;@%8I?C(dC4`0vm6TqLi;2&65d_S}0!;g4)EF0_yh&_1Nwj zpdvFGPBumGAJDF77iBOqErjg(a`^dS2|!qb0W4JM!}8tXNF)Cpj{Ky&)|n}sJ^7@Kd{O6dDM>BrUOl_oU0yp7|3Sj;5nP3=R$sgenVMj^pzT|yqhNHvZConfiguring the FeatureBuilderoutput_file_path_conv_level = "./jury_output_conversation_level.csv", turns = True ) -jury_feature_builder.featurize(col="message") +jury_feature_builder.featurize()

diff --git a/docs/build/html/feature_builder.html b/docs/build/html/feature_builder.html index d74e306f..42dec2fe 100644 --- a/docs/build/html/feature_builder.html +++ b/docs/build/html/feature_builder.html @@ -174,22 +174,19 @@
-featurize(col: str = 'message') None
+featurize() None

Main driver function for feature generation.

This function creates chat-level features, generates features for different truncation percentages of the data if specified, and produces user-level and conversation-level features. Finally, the features are saved into the designated output files.

-
Parameters:
-

col (str, optional) – Column to preprocess, defaults to “message”

+
Returns:
+

None

-
Returns:
+
Return type:

None

-
Return type:
-

None

-
diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 5353d11e..a0e113d7 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -139,7 +139,7 @@

Using the Package) # this line of code runs the FeatureBuilder on your data -my_feature_builder.featurize(col="message") +my_feature_builder.featurize()

Use the Table of Contents below to learn more about our tool. We recommend that you begin in the “Introduction” section, then explore other sections of the documentation as they become relevant to you. We recommend reading The Basics for a high-level overview of the requirements and parameters, and then reading through the Worked Example for a detailed walkthrough and discussion of considerations.

diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index a845cc9c..316e418f 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A Light-Touch, One-Function Package": [[0, "a-light-touch-one-function-package"]], "Additional FeatureBuilder Considerations": [[1, "additional-featurebuilder-considerations"]], "Advanced Configuration Columns": [[1, "advanced-configuration-columns"]], "Basic Input Columns": [[1, "basic-input-columns"]], "Certainty": [[30, null]], "Citation": [[29, "citation"], [30, "citation"], [31, "citation"], [32, "citation"], [33, "citation"], [34, "citation"], [35, "citation"], [36, "citation"], [37, "citation"], [38, "citation"], [40, "citation"], [41, "citation"], [42, "citation"], [43, "citation"], [44, "citation"], [45, "citation"], [46, "citation"], [47, "citation"], [48, "citation"], [49, "citation"], [50, "citation"], [51, "citation"], [52, "citation"], [53, "citation"], [54, "citation"], [55, "citation"], [56, "citation"], [57, "citation"], [58, "citation"], [59, "citation"], [60, "citation"]], "Configuring the FeatureBuilder": [[1, "configuring-the-featurebuilder"]], "Content Word Accommodation": [[31, null]], "Contents:": [[61, null]], "Conversation-Level Features": [[11, "conversation-level-features"], [39, "conversation-level-features"]], "Conversational Repair": [[32, null]], "Customizable Parameters": [[0, "customizable-parameters"]], "Dale-Chall Score": [[33, null]], "Demo / Sample Code": [[0, "demo-sample-code"], [1, "demo-sample-code"]], "Discursive Diversity": [[34, null]], "Example:": [[41, "example"]], "FEATURE NAME": [[29, null]], "Feature Documentation": [[62, "feature-documentation"]], "Features: Conceptual Documentation": [[39, null]], "Features: Technical Documentation": [[11, null]], "Forward Flow": [[35, null]], "Function Word Accommodation": [[36, null]], "Generating Features: Utterance-, Speaker-, and Conversation-Level": [[62, "generating-features-utterance-speaker-and-conversation-level"]], "Getting Started": [[1, "getting-started"], [61, "getting-started"], [62, "getting-started"]], "Gini Coefficient": [[37, null]], "Hedge": [[38, null]], "High*Level Intuition": [[54, "high-level-intuition"]], "High-Level Intuition": [[29, "high-level-intuition"], [30, "high-level-intuition"], [31, "high-level-intuition"], [32, "high-level-intuition"], [33, "high-level-intuition"], [34, "high-level-intuition"], [35, "high-level-intuition"], [36, "high-level-intuition"], [37, "high-level-intuition"], [38, "high-level-intuition"], [40, "high-level-intuition"], [41, "high-level-intuition"], [42, "high-level-intuition"], [43, "high-level-intuition"], [44, "high-level-intuition"], [45, "high-level-intuition"], [46, "high-level-intuition"], [47, "high-level-intuition"], [48, "high-level-intuition"], [49, "high-level-intuition"], [50, "high-level-intuition"], [51, "high-level-intuition"], [52, "high-level-intuition"], [53, "high-level-intuition"], [55, "high-level-intuition"], [56, "high-level-intuition"], [57, "high-level-intuition"], [58, "high-level-intuition"], [59, "high-level-intuition"], [60, "high-level-intuition"]], "Implementation": [[32, "implementation"], [42, "implementation"], [52, "implementation"], [54, "implementation"]], "Implementation Basics": [[29, "implementation-basics"], [30, "implementation-basics"], [31, "implementation-basics"], [33, "implementation-basics"], [34, "implementation-basics"], [35, "implementation-basics"], [36, "implementation-basics"], [37, "implementation-basics"], [38, "implementation-basics"], [40, "implementation-basics"], [41, "implementation-basics"], [43, "implementation-basics"], [44, "implementation-basics"], [45, "implementation-basics"], [46, "implementation-basics"], [47, "implementation-basics"], [48, "implementation-basics"], [49, "implementation-basics"], [50, "implementation-basics"], [51, "implementation-basics"], [53, "implementation-basics"], [55, "implementation-basics"], [56, "implementation-basics"], [57, "implementation-basics"], [58, "implementation-basics"], [59, "implementation-basics"], [60, "implementation-basics"]], "Implementation Notes/Caveats": [[29, "implementation-notes-caveats"], [30, "implementation-notes-caveats"], [31, "implementation-notes-caveats"], [33, "implementation-notes-caveats"], [34, "implementation-notes-caveats"], [35, "implementation-notes-caveats"], [36, "implementation-notes-caveats"], [38, "implementation-notes-caveats"], [40, "implementation-notes-caveats"], [41, "implementation-notes-caveats"], [43, "implementation-notes-caveats"], [44, "implementation-notes-caveats"], [45, "implementation-notes-caveats"], [46, "implementation-notes-caveats"], [47, "implementation-notes-caveats"], [48, "implementation-notes-caveats"], [49, "implementation-notes-caveats"], [50, "implementation-notes-caveats"], [51, "implementation-notes-caveats"], [53, "implementation-notes-caveats"], [55, "implementation-notes-caveats"], [56, "implementation-notes-caveats"], [57, "implementation-notes-caveats"], [58, "implementation-notes-caveats"], [59, "implementation-notes-caveats"]], "Import Recommendations: Virtual Environment and Pip": [[1, "import-recommendations-virtual-environment-and-pip"], [61, "import-recommendations-virtual-environment-and-pip"]], "Importing the Package": [[1, "importing-the-package"]], "Indices and Tables": [[61, "indices-and-tables"]], "Information Diversity": [[40, null]], "Information Exchange": [[41, null]], "Input File": [[34, "id2"]], "Interpretation:": [[41, "interpretation"]], "Interpreting the Feature": [[29, "interpreting-the-feature"], [30, "interpreting-the-feature"], [31, "interpreting-the-feature"], [32, "interpreting-the-feature"], [33, "interpreting-the-feature"], [34, "interpreting-the-feature"], [35, "interpreting-the-feature"], [36, "interpreting-the-feature"], [37, "interpreting-the-feature"], [38, "interpreting-the-feature"], [40, "interpreting-the-feature"], [41, "interpreting-the-feature"], [42, "interpreting-the-feature"], [43, "interpreting-the-feature"], [44, "interpreting-the-feature"], [45, "interpreting-the-feature"], [46, "interpreting-the-feature"], [47, "interpreting-the-feature"], [48, "interpreting-the-feature"], [49, "interpreting-the-feature"], [50, "interpreting-the-feature"], [51, "interpreting-the-feature"], [52, "interpreting-the-feature"], [53, "interpreting-the-feature"], [54, "interpreting-the-feature"], [55, "interpreting-the-feature"], [56, "interpreting-the-feature"], [57, "interpreting-the-feature"], [58, "interpreting-the-feature"], [59, "interpreting-the-feature"], [60, "interpreting-the-feature"]], "Introduction": [[62, null]], "Key Assumptions and Parameters": [[0, "key-assumptions-and-parameters"]], "Linguistic Inquiry and Word Count (LIWC) and Other Lexicons": [[42, null]], "Message Length": [[43, null]], "Message Quantity": [[44, null]], "Mimicry (BERT)": [[45, null]], "Motivation": [[62, "motivation"]], "Moving Mimicry": [[46, null]], "Named Entity Recognition": [[47, null]], "Named Entity Training Examples": [[47, "id2"]], "Online Discussion Tags": [[48, null]], "Other Utilities": [[69, "other-utilities"]], "Ouput File": [[34, "id3"]], "Our Team": [[62, "our-team"]], "Output File": [[30, "id2"], [35, "id2"], [45, "id2"], [46, "id2"], [47, "id3"], [51, "id1"]], "Package Assumptions": [[0, "package-assumptions"]], "Politeness Strategies": [[50, null]], "Politeness/Receptiveness Markers": [[49, null]], "Positivity Z-Score": [[52, null]], "Proportion of First Person Pronouns": [[53, null]], "Question (Naive)": [[54, null]], "Related Features": [[29, "related-features"], [30, "related-features"], [31, "related-features"], [32, "related-features"], [33, "related-features"], [34, "related-features"], [35, "related-features"], [36, "related-features"], [37, "related-features"], [38, "related-features"], [40, "related-features"], [41, "related-features"], [42, "related-features"], [43, "related-features"], [44, "related-features"], [45, "related-features"], [46, "related-features"], [47, "related-features"], [48, "related-features"], [49, "related-features"], [50, "related-features"], [51, "related-features"], [52, "related-features"], [53, "related-features"], [54, "related-features"], [55, "related-features"], [56, "related-features"], [57, "related-features"], [58, "related-features"], [59, "related-features"], [60, "related-features"]], "Sentiment (RoBERTa)": [[51, null]], "Speaker Turn Counts": [[59, "id2"]], "Speaker- (User) Level Features": [[11, "speaker-user-level-features"]], "Team Burstiness": [[55, null]], "Textblob Polarity": [[56, null]], "Textblob Subjectivity": [[57, null]], "The Basics": [[0, null]], "The FeatureBuilder": [[62, "the-featurebuilder"]], "The Team Communication Toolkit": [[61, null]], "Time Difference": [[58, null]], "Troubleshooting": [[1, "troubleshooting"], [61, "troubleshooting"]], "Turn Taking Index": [[59, null]], "Using the Package": [[61, "using-the-package"]], "Utilities": [[69, null]], "Utterance- (Chat) Level Features": [[11, "utterance-chat-level-features"], [39, "utterance-chat-level-features"]], "Walkthrough: Running the FeatureBuilder on Your Data": [[1, "walkthrough-running-the-featurebuilder-on-your-data"]], "Word Type-Token Ratio": [[60, null]], "Worked Example": [[1, null]], "assign_chunk_nums module": [[63, null]], "basic_features module": [[3, null]], "burstiness module": [[4, null]], "calculate_chat_level_features module": [[64, null]], "calculate_conversation_level_features module": [[65, null]], "calculate_user_level_features module": [[66, null]], "certainty module": [[5, null]], "check_embeddings module": [[67, null]], "discursive_diversity module": [[6, null]], "feature_builder module": [[2, null]], "fflow module": [[7, null]], "get_all_DD_features module": [[8, null]], "get_user_network module": [[9, null]], "gini_coefficient module": [[68, null]], "hedge module": [[10, null]], "info_exchange_zscore module": [[12, null]], "information_diversity module": [[13, null]], "lexical_features_v2 module": [[14, null]], "named_entity_recognition_features module": [[15, null]], "other_lexical_features module": [[16, null]], "politeness_features module": [[17, null]], "politeness_v2 module": [[18, null]], "politeness_v2_helper module": [[19, null]], "preload_word_lists module": [[70, null]], "preprocess module": [[71, null]], "question_num module": [[20, null]], "readability module": [[21, null]], "reddit_tags module": [[22, null]], "summarize_features module": [[72, null]], "temporal_features module": [[23, null]], "textblob_sentiment_analysis module": [[24, null]], "turn_taking_features module": [[25, null]], "variance_in_DD module": [[26, null]], "within_person_discursive_range module": [[27, null]], "word_mimicry module": [[28, null]], "z-scores:": [[41, "z-scores"]], "zscore_chats_and_conversation module": [[73, null]], "\u201cDriver\u201d Classes: Utterance-, Conversation-, and Speaker-Level Features": [[69, "driver-classes-utterance-conversation-and-speaker-level-features"]]}, "docnames": ["basics", "examples", "feature_builder", "features/basic_features", "features/burstiness", "features/certainty", "features/discursive_diversity", "features/fflow", "features/get_all_DD_features", "features/get_user_network", "features/hedge", "features/index", "features/info_exchange_zscore", "features/information_diversity", "features/lexical_features_v2", "features/named_entity_recognition_features", "features/other_lexical_features", "features/politeness_features", "features/politeness_v2", "features/politeness_v2_helper", "features/question_num", "features/readability", "features/reddit_tags", "features/temporal_features", "features/textblob_sentiment_analysis", "features/turn_taking_features", "features/variance_in_DD", "features/within_person_discursive_range", "features/word_mimicry", "features_conceptual/TEMPLATE", "features_conceptual/certainty", "features_conceptual/content_word_accommodation", "features_conceptual/conversational_repair", "features_conceptual/dale_chall_score", "features_conceptual/discursive_diversity", "features_conceptual/forward_flow", "features_conceptual/function_word_accommodation", "features_conceptual/gini_coefficient", "features_conceptual/hedge", "features_conceptual/index", "features_conceptual/information_diversity", "features_conceptual/information_exchange", "features_conceptual/liwc", "features_conceptual/message_length", "features_conceptual/message_quantity", "features_conceptual/mimicry_bert", "features_conceptual/moving_mimicry", "features_conceptual/named_entity_recognition", "features_conceptual/online_discussions_tags", "features_conceptual/politeness_receptiveness_markers", "features_conceptual/politeness_strategies", "features_conceptual/positivity_bert", "features_conceptual/positivity_z_score", "features_conceptual/proportion_of_first_person_pronouns", "features_conceptual/questions", "features_conceptual/team_burstiness", "features_conceptual/textblob_polarity", "features_conceptual/textblob_subjectivity", "features_conceptual/time_difference", "features_conceptual/turn_taking_index", "features_conceptual/word_ttr", "index", "intro", "utils/assign_chunk_nums", "utils/calculate_chat_level_features", "utils/calculate_conversation_level_features", "utils/calculate_user_level_features", "utils/check_embeddings", "utils/gini_coefficient", "utils/index", "utils/preload_word_lists", "utils/preprocess", "utils/summarize_features", "utils/zscore_chats_and_conversation"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["basics.rst", "examples.rst", "feature_builder.rst", "features/basic_features.rst", "features/burstiness.rst", "features/certainty.rst", "features/discursive_diversity.rst", "features/fflow.rst", "features/get_all_DD_features.rst", "features/get_user_network.rst", "features/hedge.rst", "features/index.rst", "features/info_exchange_zscore.rst", "features/information_diversity.rst", "features/lexical_features_v2.rst", "features/named_entity_recognition_features.rst", "features/other_lexical_features.rst", "features/politeness_features.rst", "features/politeness_v2.rst", "features/politeness_v2_helper.rst", "features/question_num.rst", "features/readability.rst", "features/reddit_tags.rst", "features/temporal_features.rst", "features/textblob_sentiment_analysis.rst", "features/turn_taking_features.rst", "features/variance_in_DD.rst", "features/within_person_discursive_range.rst", "features/word_mimicry.rst", "features_conceptual/TEMPLATE.rst", "features_conceptual/certainty.rst", "features_conceptual/content_word_accommodation.rst", "features_conceptual/conversational_repair.rst", "features_conceptual/dale_chall_score.rst", "features_conceptual/discursive_diversity.rst", "features_conceptual/forward_flow.rst", "features_conceptual/function_word_accommodation.rst", "features_conceptual/gini_coefficient.rst", "features_conceptual/hedge.rst", "features_conceptual/index.rst", "features_conceptual/information_diversity.rst", "features_conceptual/information_exchange.rst", "features_conceptual/liwc.rst", "features_conceptual/message_length.rst", "features_conceptual/message_quantity.rst", "features_conceptual/mimicry_bert.rst", "features_conceptual/moving_mimicry.rst", "features_conceptual/named_entity_recognition.rst", "features_conceptual/online_discussions_tags.rst", "features_conceptual/politeness_receptiveness_markers.rst", "features_conceptual/politeness_strategies.rst", "features_conceptual/positivity_bert.rst", "features_conceptual/positivity_z_score.rst", "features_conceptual/proportion_of_first_person_pronouns.rst", "features_conceptual/questions.rst", "features_conceptual/team_burstiness.rst", "features_conceptual/textblob_polarity.rst", "features_conceptual/textblob_subjectivity.rst", "features_conceptual/time_difference.rst", "features_conceptual/turn_taking_index.rst", "features_conceptual/word_ttr.rst", "index.rst", "intro.rst", "utils/assign_chunk_nums.rst", "utils/calculate_chat_level_features.rst", "utils/calculate_conversation_level_features.rst", "utils/calculate_user_level_features.rst", "utils/check_embeddings.rst", "utils/gini_coefficient.rst", "utils/index.rst", "utils/preload_word_lists.rst", "utils/preprocess.rst", "utils/summarize_features.rst", "utils/zscore_chats_and_conversation.rst"], "indexentries": {"adverb_limiter() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.adverb_limiter", false]], "assert_key_columns_present() (in module utils.preprocess)": [[71, "utils.preprocess.assert_key_columns_present", false]], "assign_chunk_nums() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.assign_chunk_nums", false]], "bare_command() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.bare_command", false]], "built_spacy_ner() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.built_spacy_ner", false]], "burstiness() (in module features.burstiness)": [[4, "features.burstiness.burstiness", false]], "calculate_chat_level_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_chat_level_features", false]], "calculate_conversation_level_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_conversation_level_features", false]], "calculate_hedge_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_hedge_features", false]], "calculate_id_score() (in module features.information_diversity)": [[13, "features.information_diversity.calculate_ID_score", false]], "calculate_info_diversity() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_info_diversity", false]], "calculate_named_entities() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.calculate_named_entities", false]], "calculate_num_question_naive() (in module features.question_num)": [[20, "features.question_num.calculate_num_question_naive", false]], "calculate_politeness_sentiment() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_politeness_sentiment", false]], "calculate_politeness_v2() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_politeness_v2", false]], "calculate_team_burstiness() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_team_burstiness", false]], "calculate_textblob_sentiment() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_textblob_sentiment", false]], "calculate_user_level_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.calculate_user_level_features", false]], "calculate_vector_word_mimicry() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_vector_word_mimicry", false]], "calculate_word_mimicry() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_word_mimicry", false]], "chat_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.chat_level_features", false]], "chatlevelfeaturescalculator (class in utils.calculate_chat_level_features)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator", false]], "check_embeddings() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.check_embeddings", false]], "classify_ntri() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.classify_NTRI", false]], "classify_text_dalechall() (in module features.readability)": [[21, "features.readability.classify_text_dalechall", false]], "clean_text() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.clean_text", false]], "coerce_to_date_or_number() (in module features.temporal_features)": [[23, "features.temporal_features.coerce_to_date_or_number", false]], "commit_data() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.commit_data", false]], "compress() (in module utils.preprocess)": [[71, "utils.preprocess.compress", false]], "compute_frequency() (in module features.word_mimicry)": [[28, "features.word_mimicry.compute_frequency", false]], "computetf() (in module features.word_mimicry)": [[28, "features.word_mimicry.computeTF", false]], "concat_bert_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.concat_bert_features", false]], "conjection_seperator() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.conjection_seperator", false]], "content_mimicry_score() (in module features.word_mimicry)": [[28, "features.word_mimicry.Content_mimicry_score", false]], "conv_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.conv_level_features", false]], "conv_to_float_arr() (in module features.get_all_dd_features)": [[8, "features.get_all_DD_features.conv_to_float_arr", false]], "conversationlevelfeaturescalculator (class in utils.calculate_conversation_level_features)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator", false]], "count_all_caps() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_all_caps", false]], "count_bullet_points() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_bullet_points", false]], "count_characters() (in module features.basic_features)": [[3, "features.basic_features.count_characters", false]], "count_difficult_words() (in module features.readability)": [[21, "features.readability.count_difficult_words", false]], "count_ellipses() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_ellipses", false]], "count_emojis() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_emojis", false]], "count_emphasis() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_emphasis", false]], "count_line_breaks() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_line_breaks", false]], "count_links() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_links", false]], "count_matches() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.count_matches", false]], "count_messages() (in module features.basic_features)": [[3, "features.basic_features.count_messages", false]], "count_numbering() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_numbering", false]], "count_parentheses() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_parentheses", false]], "count_quotes() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_quotes", false]], "count_responding_to_someone() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_responding_to_someone", false]], "count_spacy_matches() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.count_spacy_matches", false]], "count_syllables() (in module features.readability)": [[21, "features.readability.count_syllables", false]], "count_turn_taking_index() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.count_turn_taking_index", false]], "count_turns() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.count_turns", false]], "count_user_references() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_user_references", false]], "count_words() (in module features.basic_features)": [[3, "features.basic_features.count_words", false]], "create_chunks() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.create_chunks", false]], "create_chunks_messages() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.create_chunks_messages", false]], "create_cumulative_rows() (in module utils.preprocess)": [[71, "utils.preprocess.create_cumulative_rows", false]], "dale_chall_helper() (in module features.readability)": [[21, "features.readability.dale_chall_helper", false]], "feat_counts() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.feat_counts", false]], "feature_builder": [[2, "module-feature_builder", false]], "featurebuilder (class in feature_builder)": [[2, "feature_builder.FeatureBuilder", false]], "features.basic_features": [[3, "module-features.basic_features", false]], "features.burstiness": [[4, "module-features.burstiness", false]], "features.certainty": [[5, "module-features.certainty", false]], "features.discursive_diversity": [[6, "module-features.discursive_diversity", false]], "features.fflow": [[7, "module-features.fflow", false]], "features.get_all_dd_features": [[8, "module-features.get_all_DD_features", false]], "features.get_user_network": [[9, "module-features.get_user_network", false]], "features.hedge": [[10, "module-features.hedge", false]], "features.info_exchange_zscore": [[12, "module-features.info_exchange_zscore", false]], "features.information_diversity": [[13, "module-features.information_diversity", false]], "features.lexical_features_v2": [[14, "module-features.lexical_features_v2", false]], "features.named_entity_recognition_features": [[15, "module-features.named_entity_recognition_features", false]], "features.other_lexical_features": [[16, "module-features.other_lexical_features", false]], "features.politeness_features": [[17, "module-features.politeness_features", false]], "features.politeness_v2": [[18, "module-features.politeness_v2", false]], "features.politeness_v2_helper": [[19, "module-features.politeness_v2_helper", false]], "features.question_num": [[20, "module-features.question_num", false]], "features.readability": [[21, "module-features.readability", false]], "features.reddit_tags": [[22, "module-features.reddit_tags", false]], "features.temporal_features": [[23, "module-features.temporal_features", false]], "features.textblob_sentiment_analysis": [[24, "module-features.textblob_sentiment_analysis", false]], "features.turn_taking_features": [[25, "module-features.turn_taking_features", false]], "features.variance_in_dd": [[26, "module-features.variance_in_DD", false]], "features.within_person_discursive_range": [[27, "module-features.within_person_discursive_range", false]], "features.word_mimicry": [[28, "module-features.word_mimicry", false]], "featurize() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.featurize", false]], "function_mimicry_score() (in module features.word_mimicry)": [[28, "features.word_mimicry.function_mimicry_score", false]], "generate_bert() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_bert", false]], "generate_certainty_pkl() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_certainty_pkl", false]], "generate_lexicon_pkl() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_lexicon_pkl", false]], "generate_vect() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_vect", false]], "get_average() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_average", false]], "get_centroids() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_centroids", false]], "get_certainty() (in module features.certainty)": [[5, "features.certainty.get_certainty", false]], "get_certainty_score() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_certainty_score", false]], "get_content_words_in_message() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_content_words_in_message", false]], "get_conversation_level_aggregates() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_conversation_level_aggregates", false]], "get_cosine_similarity() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_cosine_similarity", false]], "get_dale_chall_easy_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_dale_chall_easy_words", false]], "get_dale_chall_score_and_classfication() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_dale_chall_score_and_classfication", false]], "get_dd() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_DD", false]], "get_dd_features() (in module features.get_all_dd_features)": [[8, "features.get_all_DD_features.get_DD_features", false]], "get_dep_pairs() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.get_dep_pairs", false]], "get_dep_pairs_noneg() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.get_dep_pairs_noneg", false]], "get_discursive_diversity_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_discursive_diversity_features", false]], "get_first_pct_of_chat() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.get_first_pct_of_chat", false]], "get_first_person_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_first_person_words", false]], "get_forward_flow() (in module features.fflow)": [[7, "features.fflow.get_forward_flow", false]], "get_forward_flow() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_forward_flow", false]], "get_function_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_function_words", false]], "get_function_words_in_message() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_function_words_in_message", false]], "get_gini() (in module utils.gini_coefficient)": [[68, "utils.gini_coefficient.get_gini", false]], "get_gini_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_gini_features", false]], "get_info_diversity() (in module features.information_diversity)": [[13, "features.information_diversity.get_info_diversity", false]], "get_info_exchange_wordcount() (in module features.info_exchange_zscore)": [[12, "features.info_exchange_zscore.get_info_exchange_wordcount", false]], "get_liwc_rate() (in module features.lexical_features_v2)": [[14, "features.lexical_features_v2.get_liwc_rate", false]], "get_max() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_max", false]], "get_mimicry_bert() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_mimicry_bert", false]], "get_min() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_min", false]], "get_moving_mimicry() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_moving_mimicry", false]], "get_named_entity() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_named_entity", false]], "get_nan_vector() (in module features.within_person_discursive_range)": [[27, "features.within_person_discursive_range.get_nan_vector", false]], "get_polarity_score() (in module features.textblob_sentiment_analysis)": [[24, "features.textblob_sentiment_analysis.get_polarity_score", false]], "get_politeness_strategies() (in module features.politeness_features)": [[17, "features.politeness_features.get_politeness_strategies", false]], "get_politeness_v2() (in module features.politeness_v2)": [[18, "features.politeness_v2.get_politeness_v2", false]], "get_proportion_first_pronouns() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.get_proportion_first_pronouns", false]], "get_question_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_question_words", false]], "get_reddit_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_reddit_features", false]], "get_sentiment() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.get_sentiment", false]], "get_stdev() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_stdev", false]], "get_subjectivity_score() (in module features.textblob_sentiment_analysis)": [[24, "features.textblob_sentiment_analysis.get_subjectivity_score", false]], "get_sum() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_sum", false]], "get_team_burstiness() (in module features.burstiness)": [[4, "features.burstiness.get_team_burstiness", false]], "get_temporal_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_temporal_features", false]], "get_time_diff() (in module features.temporal_features)": [[23, "features.temporal_features.get_time_diff", false]], "get_time_diff_startend() (in module features.temporal_features)": [[23, "features.temporal_features.get_time_diff_startend", false]], "get_turn() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.get_turn", false]], "get_turn_id() (in module utils.preprocess)": [[71, "utils.preprocess.get_turn_id", false]], "get_turn_taking_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_turn_taking_features", false]], "get_unique_pairwise_combos() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_unique_pairwise_combos", false]], "get_user_average_dataframe() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_user_average_dataframe", false]], "get_user_level_aggregates() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_user_level_aggregates", false]], "get_user_level_averaged_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_averaged_features", false]], "get_user_level_summary_statistics_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_summary_statistics_features", false]], "get_user_level_summed_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_summed_features", false]], "get_user_network() (in module features.get_user_network)": [[9, "features.get_user_network.get_user_network", false]], "get_user_network() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_network", false]], "get_user_sum_dataframe() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_user_sum_dataframe", false]], "get_variance_in_dd() (in module features.variance_in_dd)": [[26, "features.variance_in_DD.get_variance_in_DD", false]], "get_within_person_disc_range() (in module features.within_person_discursive_range)": [[27, "features.within_person_discursive_range.get_within_person_disc_range", false]], "get_word_ttr() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.get_word_TTR", false]], "get_zscore_across_all_chats() (in module utils.zscore_chats_and_conversation)": [[73, "utils.zscore_chats_and_conversation.get_zscore_across_all_chats", false]], "get_zscore_across_all_conversations() (in module utils.zscore_chats_and_conversation)": [[73, "utils.zscore_chats_and_conversation.get_zscore_across_all_conversations", false]], "gini_coefficient() (in module utils.gini_coefficient)": [[68, "utils.gini_coefficient.gini_coefficient", false]], "info_diversity() (in module features.information_diversity)": [[13, "features.information_diversity.info_diversity", false]], "info_exchange() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.info_exchange", false]], "is_hedged_sentence_1() (in module features.hedge)": [[10, "features.hedge.is_hedged_sentence_1", false]], "lexical_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.lexical_features", false]], "liwc_features() (in module features.lexical_features_v2)": [[14, "features.lexical_features_v2.liwc_features", false]], "load_saved_data() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_saved_data", false]], "load_to_dict() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_to_dict", false]], "load_to_lists() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_to_lists", false]], "merge_conv_data_with_original() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.merge_conv_data_with_original", false]], "mimic_words() (in module features.word_mimicry)": [[28, "features.word_mimicry.mimic_words", false]], "module": [[2, "module-feature_builder", false], [3, "module-features.basic_features", false], [4, "module-features.burstiness", false], [5, "module-features.certainty", false], [6, "module-features.discursive_diversity", false], [7, "module-features.fflow", false], [8, "module-features.get_all_DD_features", false], [9, "module-features.get_user_network", false], [10, "module-features.hedge", false], [12, "module-features.info_exchange_zscore", false], [13, "module-features.information_diversity", false], [14, "module-features.lexical_features_v2", false], [15, "module-features.named_entity_recognition_features", false], [16, "module-features.other_lexical_features", false], [17, "module-features.politeness_features", false], [18, "module-features.politeness_v2", false], [19, "module-features.politeness_v2_helper", false], [20, "module-features.question_num", false], [21, "module-features.readability", false], [22, "module-features.reddit_tags", false], [23, "module-features.temporal_features", false], [24, "module-features.textblob_sentiment_analysis", false], [25, "module-features.turn_taking_features", false], [26, "module-features.variance_in_DD", false], [27, "module-features.within_person_discursive_range", false], [28, "module-features.word_mimicry", false], [63, "module-utils.assign_chunk_nums", false], [64, "module-utils.calculate_chat_level_features", false], [65, "module-utils.calculate_conversation_level_features", false], [66, "module-utils.calculate_user_level_features", false], [67, "module-utils.check_embeddings", false], [68, "module-utils.gini_coefficient", false], [70, "module-utils.preload_word_lists", false], [71, "module-utils.preprocess", false], [72, "module-utils.summarize_features", false], [73, "module-utils.zscore_chats_and_conversation", false]], "named_entities() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.named_entities", false]], "num_named_entity() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.num_named_entity", false]], "other_lexical_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.other_lexical_features", false]], "phrase_split() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.phrase_split", false]], "positivity_zscore() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.positivity_zscore", false]], "prep_simple() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.prep_simple", false]], "prep_whole() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.prep_whole", false]], "preprocess_chat_data() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.preprocess_chat_data", false]], "preprocess_conversation_columns() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_conversation_columns", false]], "preprocess_naive_turns() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_naive_turns", false]], "preprocess_text() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_text", false]], "preprocess_text_lowercase_but_retain_punctuation() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_text_lowercase_but_retain_punctuation", false]], "preprocessing() (in module features.information_diversity)": [[13, "features.information_diversity.preprocessing", false]], "punctuation_seperator() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.punctuation_seperator", false]], "question() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.Question", false]], "read_in_lexicons() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.read_in_lexicons", false]], "reduce_chunks() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.reduce_chunks", false]], "remove_active_user() (in module features.get_user_network)": [[9, "features.get_user_network.remove_active_user", false]], "save_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.save_features", false]], "sentence_pad() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentence_pad", false]], "sentence_split() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentence_split", false]], "sentenciser() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentenciser", false]], "set_self_conv_data() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.set_self_conv_data", false]], "text_based_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.text_based_features", false]], "token_count() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.token_count", false]], "train_spacy_ner() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.train_spacy_ner", false]], "user_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.user_level_features", false]], "userlevelfeaturescalculator (class in utils.calculate_user_level_features)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator", false]], "utils.assign_chunk_nums": [[63, "module-utils.assign_chunk_nums", false]], "utils.calculate_chat_level_features": [[64, "module-utils.calculate_chat_level_features", false]], "utils.calculate_conversation_level_features": [[65, "module-utils.calculate_conversation_level_features", false]], "utils.calculate_user_level_features": [[66, "module-utils.calculate_user_level_features", false]], "utils.check_embeddings": [[67, "module-utils.check_embeddings", false]], "utils.gini_coefficient": [[68, "module-utils.gini_coefficient", false]], "utils.preload_word_lists": [[70, "module-utils.preload_word_lists", false]], "utils.preprocess": [[71, "module-utils.preprocess", false]], "utils.summarize_features": [[72, "module-utils.summarize_features", false]], "utils.zscore_chats_and_conversation": [[73, "module-utils.zscore_chats_and_conversation", false]], "word_start() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.word_start", false]]}, "objects": {"": [[2, 0, 0, "-", "feature_builder"]], "feature_builder": [[2, 1, 1, "", "FeatureBuilder"]], "feature_builder.FeatureBuilder": [[2, 2, 1, "", "chat_level_features"], [2, 2, 1, "", "conv_level_features"], [2, 2, 1, "", "featurize"], [2, 2, 1, "", "get_first_pct_of_chat"], [2, 2, 1, "", "merge_conv_data_with_original"], [2, 2, 1, "", "preprocess_chat_data"], [2, 2, 1, "", "save_features"], [2, 2, 1, "", "set_self_conv_data"], [2, 2, 1, "", "user_level_features"]], "features": [[3, 0, 0, "-", "basic_features"], [4, 0, 0, "-", "burstiness"], [5, 0, 0, "-", "certainty"], [6, 0, 0, "-", "discursive_diversity"], [7, 0, 0, "-", "fflow"], [8, 0, 0, "-", "get_all_DD_features"], [9, 0, 0, "-", "get_user_network"], [10, 0, 0, "-", "hedge"], [12, 0, 0, "-", "info_exchange_zscore"], [13, 0, 0, "-", "information_diversity"], [14, 0, 0, "-", "lexical_features_v2"], [15, 0, 0, "-", "named_entity_recognition_features"], [16, 0, 0, "-", "other_lexical_features"], [17, 0, 0, "-", "politeness_features"], [18, 0, 0, "-", "politeness_v2"], [19, 0, 0, "-", "politeness_v2_helper"], [20, 0, 0, "-", "question_num"], [21, 0, 0, "-", "readability"], [22, 0, 0, "-", "reddit_tags"], [23, 0, 0, "-", "temporal_features"], [24, 0, 0, "-", "textblob_sentiment_analysis"], [25, 0, 0, "-", "turn_taking_features"], [26, 0, 0, "-", "variance_in_DD"], [27, 0, 0, "-", "within_person_discursive_range"], [28, 0, 0, "-", "word_mimicry"]], "features.basic_features": [[3, 3, 1, "", "count_characters"], [3, 3, 1, "", "count_messages"], [3, 3, 1, "", "count_words"]], "features.burstiness": [[4, 3, 1, "", "burstiness"], [4, 3, 1, "", "get_team_burstiness"]], "features.certainty": [[5, 3, 1, "", "get_certainty"]], "features.discursive_diversity": [[6, 3, 1, "", "get_DD"], [6, 3, 1, "", "get_cosine_similarity"], [6, 3, 1, "", "get_unique_pairwise_combos"]], "features.fflow": [[7, 3, 1, "", "get_forward_flow"]], "features.get_all_DD_features": [[8, 3, 1, "", "conv_to_float_arr"], [8, 3, 1, "", "get_DD_features"]], "features.get_user_network": [[9, 3, 1, "", "get_user_network"], [9, 3, 1, "", "remove_active_user"]], "features.hedge": [[10, 3, 1, "", "is_hedged_sentence_1"]], "features.info_exchange_zscore": [[12, 3, 1, "", "get_info_exchange_wordcount"]], "features.information_diversity": [[13, 3, 1, "", "calculate_ID_score"], [13, 3, 1, "", "get_info_diversity"], [13, 3, 1, "", "info_diversity"], [13, 3, 1, "", "preprocessing"]], "features.lexical_features_v2": [[14, 3, 1, "", "get_liwc_rate"], [14, 3, 1, "", "liwc_features"]], "features.named_entity_recognition_features": [[15, 3, 1, "", "built_spacy_ner"], [15, 3, 1, "", "calculate_named_entities"], [15, 3, 1, "", "named_entities"], [15, 3, 1, "", "num_named_entity"], [15, 3, 1, "", "train_spacy_ner"]], "features.other_lexical_features": [[16, 3, 1, "", "classify_NTRI"], [16, 3, 1, "", "get_proportion_first_pronouns"], [16, 3, 1, "", "get_word_TTR"]], "features.politeness_features": [[17, 3, 1, "", "get_politeness_strategies"]], "features.politeness_v2": [[18, 3, 1, "", "get_politeness_v2"]], "features.politeness_v2_helper": [[19, 3, 1, "", "Question"], [19, 3, 1, "", "adverb_limiter"], [19, 3, 1, "", "bare_command"], [19, 3, 1, "", "clean_text"], [19, 3, 1, "", "commit_data"], [19, 3, 1, "", "conjection_seperator"], [19, 3, 1, "", "count_matches"], [19, 3, 1, "", "count_spacy_matches"], [19, 3, 1, "", "feat_counts"], [19, 3, 1, "", "get_dep_pairs"], [19, 3, 1, "", "get_dep_pairs_noneg"], [19, 3, 1, "", "load_saved_data"], [19, 3, 1, "", "load_to_dict"], [19, 3, 1, "", "load_to_lists"], [19, 3, 1, "", "phrase_split"], [19, 3, 1, "", "prep_simple"], [19, 3, 1, "", "prep_whole"], [19, 3, 1, "", "punctuation_seperator"], [19, 3, 1, "", "sentence_pad"], [19, 3, 1, "", "sentence_split"], [19, 3, 1, "", "sentenciser"], [19, 3, 1, "", "token_count"], [19, 3, 1, "", "word_start"]], "features.question_num": [[20, 3, 1, "", "calculate_num_question_naive"]], "features.readability": [[21, 3, 1, "", "classify_text_dalechall"], [21, 3, 1, "", "count_difficult_words"], [21, 3, 1, "", "count_syllables"], [21, 3, 1, "", "dale_chall_helper"]], "features.reddit_tags": [[22, 3, 1, "", "count_all_caps"], [22, 3, 1, "", "count_bullet_points"], [22, 3, 1, "", "count_ellipses"], [22, 3, 1, "", "count_emojis"], [22, 3, 1, "", "count_emphasis"], [22, 3, 1, "", "count_line_breaks"], [22, 3, 1, "", "count_links"], [22, 3, 1, "", "count_numbering"], [22, 3, 1, "", "count_parentheses"], [22, 3, 1, "", "count_quotes"], [22, 3, 1, "", "count_responding_to_someone"], [22, 3, 1, "", "count_user_references"]], "features.temporal_features": [[23, 3, 1, "", "coerce_to_date_or_number"], [23, 3, 1, "", "get_time_diff"], [23, 3, 1, "", "get_time_diff_startend"]], "features.textblob_sentiment_analysis": [[24, 3, 1, "", "get_polarity_score"], [24, 3, 1, "", "get_subjectivity_score"]], "features.turn_taking_features": [[25, 3, 1, "", "count_turn_taking_index"], [25, 3, 1, "", "count_turns"], [25, 3, 1, "", "get_turn"]], "features.variance_in_DD": [[26, 3, 1, "", "get_variance_in_DD"]], "features.within_person_discursive_range": [[27, 3, 1, "", "get_nan_vector"], [27, 3, 1, "", "get_within_person_disc_range"]], "features.word_mimicry": [[28, 3, 1, "", "Content_mimicry_score"], [28, 3, 1, "", "computeTF"], [28, 3, 1, "", "compute_frequency"], [28, 3, 1, "", "function_mimicry_score"], [28, 3, 1, "", "get_content_words_in_message"], [28, 3, 1, "", "get_function_words_in_message"], [28, 3, 1, "", "get_mimicry_bert"], [28, 3, 1, "", "get_moving_mimicry"], [28, 3, 1, "", "mimic_words"]], "utils": [[63, 0, 0, "-", "assign_chunk_nums"], [64, 0, 0, "-", "calculate_chat_level_features"], [65, 0, 0, "-", "calculate_conversation_level_features"], [66, 0, 0, "-", "calculate_user_level_features"], [67, 0, 0, "-", "check_embeddings"], [68, 0, 0, "-", "gini_coefficient"], [70, 0, 0, "-", "preload_word_lists"], [71, 0, 0, "-", "preprocess"], [72, 0, 0, "-", "summarize_features"], [73, 0, 0, "-", "zscore_chats_and_conversation"]], "utils.assign_chunk_nums": [[63, 3, 1, "", "assign_chunk_nums"], [63, 3, 1, "", "create_chunks"], [63, 3, 1, "", "create_chunks_messages"], [63, 3, 1, "", "reduce_chunks"]], "utils.calculate_chat_level_features": [[64, 1, 1, "", "ChatLevelFeaturesCalculator"]], "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator": [[64, 2, 1, "", "calculate_chat_level_features"], [64, 2, 1, "", "calculate_hedge_features"], [64, 2, 1, "", "calculate_politeness_sentiment"], [64, 2, 1, "", "calculate_politeness_v2"], [64, 2, 1, "", "calculate_textblob_sentiment"], [64, 2, 1, "", "calculate_vector_word_mimicry"], [64, 2, 1, "", "calculate_word_mimicry"], [64, 2, 1, "", "concat_bert_features"], [64, 2, 1, "", "get_certainty_score"], [64, 2, 1, "", "get_dale_chall_score_and_classfication"], [64, 2, 1, "", "get_forward_flow"], [64, 2, 1, "", "get_named_entity"], [64, 2, 1, "", "get_reddit_features"], [64, 2, 1, "", "get_temporal_features"], [64, 2, 1, "", "info_exchange"], [64, 2, 1, "", "lexical_features"], [64, 2, 1, "", "other_lexical_features"], [64, 2, 1, "", "positivity_zscore"], [64, 2, 1, "", "text_based_features"]], "utils.calculate_conversation_level_features": [[65, 1, 1, "", "ConversationLevelFeaturesCalculator"]], "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator": [[65, 2, 1, "", "calculate_conversation_level_features"], [65, 2, 1, "", "calculate_info_diversity"], [65, 2, 1, "", "calculate_team_burstiness"], [65, 2, 1, "", "get_conversation_level_aggregates"], [65, 2, 1, "", "get_discursive_diversity_features"], [65, 2, 1, "", "get_gini_features"], [65, 2, 1, "", "get_turn_taking_features"], [65, 2, 1, "", "get_user_level_aggregates"]], "utils.calculate_user_level_features": [[66, 1, 1, "", "UserLevelFeaturesCalculator"]], "utils.calculate_user_level_features.UserLevelFeaturesCalculator": [[66, 2, 1, "", "calculate_user_level_features"], [66, 2, 1, "", "get_centroids"], [66, 2, 1, "", "get_user_level_averaged_features"], [66, 2, 1, "", "get_user_level_summary_statistics_features"], [66, 2, 1, "", "get_user_level_summed_features"], [66, 2, 1, "", "get_user_network"]], "utils.check_embeddings": [[67, 3, 1, "", "check_embeddings"], [67, 3, 1, "", "generate_bert"], [67, 3, 1, "", "generate_certainty_pkl"], [67, 3, 1, "", "generate_lexicon_pkl"], [67, 3, 1, "", "generate_vect"], [67, 3, 1, "", "get_sentiment"], [67, 3, 1, "", "read_in_lexicons"]], "utils.gini_coefficient": [[68, 3, 1, "", "get_gini"], [68, 3, 1, "", "gini_coefficient"]], "utils.preload_word_lists": [[70, 3, 1, "", "get_dale_chall_easy_words"], [70, 3, 1, "", "get_first_person_words"], [70, 3, 1, "", "get_function_words"], [70, 3, 1, "", "get_question_words"]], "utils.preprocess": [[71, 3, 1, "", "assert_key_columns_present"], [71, 3, 1, "", "compress"], [71, 3, 1, "", "create_cumulative_rows"], [71, 3, 1, "", "get_turn_id"], [71, 3, 1, "", "preprocess_conversation_columns"], [71, 3, 1, "", "preprocess_naive_turns"], [71, 3, 1, "", "preprocess_text"], [71, 3, 1, "", "preprocess_text_lowercase_but_retain_punctuation"]], "utils.summarize_features": [[72, 3, 1, "", "get_average"], [72, 3, 1, "", "get_max"], [72, 3, 1, "", "get_min"], [72, 3, 1, "", "get_stdev"], [72, 3, 1, "", "get_sum"], [72, 3, 1, "", "get_user_average_dataframe"], [72, 3, 1, "", "get_user_sum_dataframe"]], "utils.zscore_chats_and_conversation": [[73, 3, 1, "", "get_zscore_across_all_chats"], [73, 3, 1, "", "get_zscore_across_all_conversations"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"": [0, 1, 2, 4, 5, 9, 11, 13, 25, 28, 29, 31, 32, 34, 35, 36, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 55, 59, 61, 62, 64, 65, 66], "0": [1, 2, 5, 10, 13, 16, 21, 24, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 50, 51, 53, 55, 59, 61], "000": 42, "00222437221134802": [5, 64], "01": 51, "02": 51, "04": 40, "0496": [21, 33], "05": [13, 40, 50, 51], "06": 51, "08": 50, "09": [45, 46, 50], "1": [1, 2, 3, 10, 13, 22, 24, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57, 59, 62], "10": [1, 5, 6, 21, 24, 33, 42, 59, 61, 64], "100": [1, 14, 21, 33, 37, 42, 47, 62], "1000": 42, "10th": 33, "1145": [21, 24], "1177": [5, 64], "11th": 33, "12": [35, 45, 46, 50], "1287": 6, "12th": 33, "13": 50, "14": 50, "15": [37, 50], "1579": [21, 33], "17": 50, "1948": 33, "195": 36, "1977": 62, "1lpngokujsx": 5, "1st": 50, "1st_person": 50, "1st_person_pl": 50, "1st_person_start": 50, "2": [1, 2, 34, 35, 41, 47, 59, 61, 62], "20": [37, 59], "2004": 42, "2007": [5, 42], "2009": 60, "2012": 55, "2013": [12, 16, 31, 32, 36, 37, 38, 41, 43, 50, 52, 54, 70], "2015": [53, 58, 60], "2016": 4, "2017": 13, "2018": [40, 44, 55], "2019": [35, 52], "2020": [18, 21, 24, 33, 49, 50, 56, 57], "2021": [1, 6, 43, 44], "2022": [13, 34], "2023": [5, 14, 30, 42, 59, 64], "2024": 40, "21": 59, "22": [41, 50], "2384068": 4, "24": [1, 61], "25": 47, "27": 50, "28": 50, "29": 50, "2nd": 50, "2nd_person": 50, "2nd_person_start": 50, "3": [1, 2, 21, 34, 41, 51, 59, 61, 71], "30": 50, "3000": 33, "32": [34, 50], "3432929": [21, 24], "35": 51, "36": 50, "38": 50, "39": 49, "39512260": 68, "3n": 59, "4": [5, 13, 21, 30, 33, 41, 56, 62], "42": 14, "4274": 6, "43": 50, "45": 50, "47": 50, "49": 50, "4pit4bqz6": 5, "4th": [21, 33], "5": [1, 5, 21, 30, 33, 37, 41, 59], "50": [1, 47], "52": 50, "53": 50, "57": 50, "58": 50, "5th": 33, "6": [1, 33, 43], "60": 51, "63": 50, "6365": 21, "68": 47, "6th": 33, "7": [30, 33, 48], "70": 50, "78": [35, 50], "7th": 33, "8": [1, 30, 33], "80": [21, 70], "82": 41, "85": 34, "86": 35, "87": 50, "89": [45, 46], "8th": 33, "9": [2, 5, 21, 30, 33, 40, 47, 50], "9123": 47, "92": 51, "93chall_readability_formula": [21, 70], "94": 15, "95": 47, "97": 51, "9855072464": 47, "9992": 47, "99954": 47, "9th": 33, "A": [1, 2, 4, 12, 13, 14, 15, 16, 17, 18, 19, 21, 23, 25, 28, 33, 34, 35, 37, 38, 40, 41, 44, 45, 46, 47, 49, 50, 51, 52, 57, 59, 60, 61, 62, 66, 67, 68, 70, 71, 72, 73], "And": [1, 62], "As": [1, 31, 35, 36, 40, 45, 61], "But": [1, 50, 62], "By": [1, 42, 50], "For": [0, 1, 31, 34, 37, 41, 42, 43, 47, 49, 54, 56, 59, 62, 65], "If": [0, 1, 2, 5, 21, 29, 30, 35, 45, 47, 50, 55, 61, 62, 63, 64, 67, 71], "In": [1, 21, 30, 31, 34, 35, 36, 37, 39, 41, 42, 45, 46, 47, 50, 55, 59, 61, 62], "It": [1, 2, 31, 32, 33, 36, 37, 41, 44, 45, 46, 50, 64, 65, 66, 67, 71], "NO": 37, "NOT": [1, 61], "No": [19, 53], "Not": 41, "One": [1, 37, 61], "That": [29, 55], "The": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "Then": [1, 55, 61], "There": [1, 11, 32, 61, 66], "These": [1, 11, 17, 32, 34, 42, 48, 52, 62, 69], "To": [0, 1, 29, 31, 34, 37, 40, 55, 56, 57, 61, 62], "WITH": 21, "Will": 50, "_deviat": 55, "abil": [13, 29], "abl": [31, 36, 61], "abort": 1, "about": [1, 12, 29, 31, 36, 41, 47, 61, 62], "abov": [1, 21, 34, 61], "abstract_id": 4, "accept": [0, 1, 58, 61], "access": [0, 1, 15], "accommod": [28, 32, 39, 45, 46, 64, 65, 66], "accord": [21, 37, 59, 64, 70], "accordingli": 63, "account": [1, 29, 32, 42], "accus": 50, "achiev": [50, 62], "acknowledg": 49, "acm": [21, 24], "acommod": 36, "across": [1, 13, 28, 31, 34, 40, 41, 42, 50, 62, 64, 73], "action": 59, "activ": [1, 9, 44, 55, 71], "actual": [41, 56], "ad": [61, 62, 71], "adapt": 59, "add": [0, 1, 2, 21, 51, 61], "addit": [0, 2, 32, 34, 42, 63, 69], "addition": [30, 31, 32, 54], "address": 1, "adjac": 71, "adjust": [0, 21, 37, 63], "advanc": [31, 36], "advantag": 4, "adverb": [19, 31, 36], "adverb_limit": [19, 49], "affect": [1, 29, 35, 44], "affirm": 49, "after": [0, 1, 31, 34, 36, 43, 61, 62, 64], "again": [32, 34], "against": [28, 31, 36, 52], "agarw": 62, "aggreg": [0, 3, 11, 37, 44, 62, 65, 66, 72], "agre": 47, "agreement": 49, "ah": [31, 36], "ai": 62, "aim": [39, 62], "airtim": [37, 62], "al": [1, 5, 14, 16, 18, 21, 24, 30, 31, 32, 33, 34, 35, 36, 38, 42, 43, 44, 49, 50, 52, 53, 54, 56, 57, 58, 59, 60, 64], "algorithm": [56, 57], "align": [35, 51], "all": [0, 1, 2, 6, 12, 13, 15, 19, 22, 28, 30, 31, 34, 35, 36, 37, 40, 41, 42, 46, 48, 49, 51, 52, 55, 58, 61, 62, 64, 66, 71, 73], "allow": 1, "almaatouq": 59, "along": 1, "alongsid": 1, "alphabet": 49, "alphanumer": 71, "alreadi": [0, 1, 2, 4, 10, 12, 16, 67], "also": [0, 1, 2, 28, 30, 31, 32, 34, 36, 37, 38, 42, 47, 51, 54, 60, 61, 62, 64, 65, 67, 69, 71], "alsobai": 59, "altern": 59, "although": [1, 23, 31, 36], "alwai": [1, 55], "am": [31, 36, 42, 54, 62], "amaz": [48, 56], "ambient": 32, "american": 33, "ami": [47, 59, 62], "amic": 62, "among": [36, 37, 52, 55, 62], "amongst": [6, 35, 48], "an": [1, 2, 5, 8, 11, 12, 13, 21, 29, 30, 31, 32, 33, 34, 36, 38, 40, 41, 42, 45, 47, 48, 50, 51, 52, 54, 59, 60, 61, 62, 63, 65, 66, 68], "analys": [1, 62], "analysi": [1, 11, 52, 62, 71], "analyt": 62, "analyz": [0, 1, 2, 13, 14, 16, 17, 19, 20, 21, 22, 24, 28, 43, 52, 62, 67, 71], "analyze_first_pct": [0, 1, 2], "angri": 47, "ani": [0, 1, 29, 31, 33, 38, 54, 62, 71], "annot": [17, 50], "anoth": [30, 34, 36, 48], "answer": 29, "anybodi": [31, 36], "anyth": [1, 2, 23, 31, 36, 56], "anywher": [31, 36], "apartment": 42, "api": 47, "api_refer": 24, "apolog": [17, 50], "apologi": 49, "appear": [0, 15, 37, 38, 42, 64], "append": [1, 17, 64, 65, 66, 67], "appli": [4, 13, 14, 18, 62, 64, 69], "applic": [29, 71], "appreci": 50, "approach": [32, 38, 42, 45, 46, 49, 53, 64], "appropri": 69, "ar": [0, 1, 2, 3, 5, 9, 10, 11, 15, 17, 19, 21, 23, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 51, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 69, 71], "arcross": 34, "area": 62, "aren": [31, 36], "around": 2, "arous": 48, "arrai": [6, 8, 68], "articl": [37, 50], "ask": [20, 47, 54], "ask_ag": 49, "aspect": [50, 62], "assert_key_columns_pres": 71, "assign": [31, 36, 38, 45, 46, 52, 59, 63, 71], "assign_chunk_num": 69, "associ": [4, 15, 21, 29, 30, 31, 32, 36, 40, 45, 46, 47, 48, 61], "assum": [0, 1, 2, 10, 12, 16, 23, 41, 60, 71], "assumign": 1, "assumpt": [1, 41, 61], "asterisk": 22, "attribut": [1, 11, 34, 51, 52, 56, 62], "author": [5, 31, 36, 59], "automat": [1, 61, 69], "auxiliari": [31, 36], "avail": [62, 63, 64, 67], "averag": [11, 13, 28, 30, 33, 34, 35, 40, 41, 46, 52, 64, 65, 66, 72], "avil": 62, "avoid": 30, "awar": 29, "awesom": 62, "b": [4, 34, 35, 45, 46, 55, 62], "back": 62, "bag": [32, 38, 42, 45, 46, 49, 53, 56, 57], "bare_command": [19, 49], "base": [1, 2, 15, 18, 19, 31, 32, 34, 35, 36, 37, 40, 42, 51, 52, 53, 54, 55, 56, 57, 62, 63, 64, 65, 66, 71], "basic": [10, 11, 12, 16, 61, 62], "basic_featur": 11, "batch_num": 1, "bay": [56, 57], "bbevi": 18, "becaus": [1, 2, 12, 21, 31, 36, 40, 56, 61], "becom": [44, 61, 62], "been": [1, 2, 12, 16, 31, 36, 61], "befor": [0, 1, 2, 17, 31, 36, 45, 48], "beforehand": 64, "begin": [34, 54, 58, 61, 62, 63], "behavior": [62, 63], "being": [4, 13, 14, 16, 17, 20, 21, 24, 31, 32, 36, 43, 47, 51, 55, 56, 60], "belong": [1, 42], "below": [1, 11, 21, 33, 36, 45, 48, 51, 61, 62, 69], "ber": 54, "bert": [0, 1, 31, 35, 36, 39, 46, 61, 64, 67], "bert_path": 67, "bert_sentiment_data": 64, "best": [14, 29], "better": 61, "between": [4, 6, 13, 21, 23, 24, 28, 30, 31, 34, 35, 36, 37, 40, 45, 46, 55, 58, 59, 62, 64, 65], "betwen": 34, "beyond": 2, "big": 59, "binari": [10, 32, 38], "blame": 47, "blob": 24, "block": [22, 32, 48, 59], "blog": 15, "bold": [22, 64], "bool": [2, 63, 67, 71], "bootstrap": 62, "both": [1, 2, 42, 52, 54, 55, 59, 62], "bother": 50, "bottom": 59, "bought": 41, "bound": [29, 35, 36, 37, 42, 52, 55], "boundari": [34, 35], "break": [22, 48, 64], "brief": 44, "broader": 52, "broken": 59, "btw": 50, "bug": [1, 61], "build": [1, 7, 34, 45, 46, 62], "built": 11, "built_spacy_n": 15, "bullet": [22, 48, 64], "bunch": 59, "burst": 58, "bursti": [11, 39, 58, 65], "by_the_wai": 49, "c": [12, 34, 35, 45, 46, 62], "cach": [0, 1, 2, 51, 61], "calcul": [2, 5, 11, 12, 16, 18, 21, 28, 33, 41, 48, 49, 50, 56, 57, 58, 60, 62, 63, 64, 65, 66, 67, 68, 72, 73], "calculate_chat_level_featur": 69, "calculate_conversation_level_featur": 69, "calculate_hedge_featur": 64, "calculate_id_scor": 13, "calculate_info_divers": 65, "calculate_named_ent": 15, "calculate_num_question_na": 20, "calculate_politeness_senti": 64, "calculate_politeness_v2": 64, "calculate_team_bursti": 65, "calculate_textblob_senti": 64, "calculate_user_level_featur": 69, "calculate_vector_word_mimicri": 64, "calculate_word_mimicri": 64, "call": [1, 2, 8, 13, 61, 62, 64, 69], "can": [0, 1, 11, 23, 31, 32, 33, 34, 36, 37, 42, 43, 44, 47, 48, 49, 50, 52, 54, 60, 61, 62, 69], "can_you": 49, "cannot": [1, 31, 36, 45, 46, 49, 62], "cao": [21, 24, 33, 43, 44, 56, 57, 62], "cap": [22, 48, 64], "capit": 48, "captur": [29, 30, 32, 34, 35, 38, 41, 42, 55], "caract": 40, "carefulli": 60, "casa_token": 5, "case": [1, 13, 16, 29, 30, 31, 36, 37, 41, 45, 46, 51, 55, 56, 59, 61], "casual": 43, "categori": [21, 32, 45, 46, 49, 52], "caus": [31, 32, 36, 59], "caveat": 1, "center": 62, "central": 34, "centroid": [34, 66], "certain": [5, 19, 30, 42, 45, 46, 49], "certainli": 42, "certainti": [11, 38, 39, 42, 64, 67], "cfm": 4, "chall": [1, 21, 39, 64, 70], "chang": [1, 34, 50, 61, 71], "charact": [2, 3, 15, 19, 37, 49, 62, 64, 65, 66, 71], "characterist": 62, "chat": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16, 23, 25, 28, 29, 32, 35, 36, 41, 44, 45, 46, 49, 59, 61, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "chat_data": [2, 6, 7, 8, 26, 27, 28, 63, 64, 65, 66, 67, 71], "chat_df": 14, "chat_level_data": 72, "chat_level_featur": 2, "chatlevelfeaturescalcul": [2, 17, 21, 64, 69], "chats_data": 73, "check": [19, 23, 44, 64, 67, 71], "check_embed": 69, "chen": 62, "choos": 60, "chose": 1, "chunk": [34, 59, 63], "chunk_num": 63, "circlelyt": 13, "citat": [21, 24], "cite": 50, "clarif": [16, 32, 64], "class": [1, 2, 31, 61, 62, 64, 65, 66], "classif": [21, 64], "classifi": [16, 21, 50, 56, 57], "classify_ntri": 16, "classify_text_dalechal": 21, "clean": [2, 17, 19, 67], "clean_text": 19, "clear": 1, "close": [31, 48, 62], "closer": [45, 46, 59], "clue": 62, "cmu": 12, "code": [6, 18, 29, 32, 51, 55, 61, 62, 68], "coeffici": [4, 39, 62, 65, 68], "coerce_to_date_or_numb": 23, "cognit": 62, "col": [1, 2, 61], "colab": [0, 1], "collabor": [59, 62], "collaps": 2, "collect": [2, 34, 49, 50, 52, 62], "colleg": 33, "column": [0, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 23, 25, 28, 51, 56, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "column_count_frequ": 28, "column_count_mim": 28, "column_mimc": 28, "column_nam": 71, "column_to_summar": 72, "com": [1, 2, 4, 5, 13, 15, 18, 64, 68, 71], "comb": 62, "combin": [0, 1, 6, 28, 61, 64, 71], "come": [12, 13, 21, 32, 33, 58, 61], "comm": [1, 61], "command": [1, 61], "comment": 48, "commit": 23, "commit_data": 19, "common": [32, 62, 64], "commonli": 37, "commun": [0, 1, 11, 44, 48, 55, 60, 62, 64], "companion": 1, "compar": [2, 31, 35, 42, 44, 45, 52, 64, 71, 73], "compat": [1, 61], "complement": [31, 36], "complet": [1, 2, 55], "complex": [35, 43, 50, 62], "compon": 50, "comprehens": [33, 48], "compress": 71, "comput": [0, 2, 4, 5, 6, 10, 11, 12, 13, 14, 28, 29, 30, 31, 34, 35, 36, 37, 40, 41, 42, 45, 46, 49, 52, 55, 62, 64, 65, 66, 69, 73], "compute_frequ": 28, "computetf": 28, "conain": 61, "concat_bert_featur": 64, "concaten": [19, 49, 64, 71], "concentr": 55, "concept": [29, 39, 42, 62], "conceptu": [61, 62], "concis": 43, "concret": 29, "conduct": 1, "confid": [2, 5, 15, 30, 47, 64], "conflict": 62, "confound": 44, "congruent": 34, "conjection_seper": 19, "conjunct": [19, 31, 36, 49], "conjunction_start": 49, "connect": 39, "conscious": 35, "consecut": 22, "consid": [1, 33, 37], "consider": [61, 62], "consist": [36, 40, 41], "constitut": 41, "constrain": [34, 35], "construct": [11, 55, 62], "constructor": 47, "consult": 5, "contain": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 23, 25, 28, 29, 30, 35, 38, 42, 47, 49, 55, 61, 62, 63, 64, 67, 71, 72, 73], "content": [0, 1, 12, 13, 28, 34, 36, 39, 41, 42, 45, 46, 62, 64, 67], "content_mimicry_scor": 28, "content_word_mimicri": 28, "context": [2, 32, 42, 48, 62, 71], "continu": [56, 57], "contract": 49, "contrast": 39, "contribut": [13, 34, 37, 62], "control": 1, "conv": 1, "conv_data": [2, 65], "conv_level_featur": 2, "conv_to_float_arr": 8, "convei": [6, 34, 52], "convers": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 23, 25, 28, 29, 31, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 58, 59, 61, 63, 64, 65, 66, 68, 71, 72, 73], "conversation_id": [2, 28, 61, 71], "conversation_id_col": [0, 1, 2, 4, 6, 7, 8, 9, 13, 23, 25, 26, 27, 61, 63, 64, 65, 66, 68, 72, 73], "conversation_num": [0, 1, 2, 6, 7, 66, 71, 73], "conversationlevelfeaturescalcul": [2, 65, 69], "convert": [8, 41, 49, 71], "convict": 5, "convokit": [17, 50, 62, 64], "coordin": 55, "copi": [0, 1], "copular": [31, 36], "core": [34, 69], "cornel": 17, "corpu": 50, "corrado": 37, "correl": [41, 55], "correspond": [30, 34, 35, 40, 49, 55, 66], "cosin": [6, 7, 13, 28, 31, 34, 35, 36, 40, 45, 46, 65], "could": [1, 31, 33, 36, 50, 54], "could_you": 49, "couldn": [31, 36], "count": [1, 3, 12, 14, 15, 16, 19, 21, 25, 28, 30, 31, 32, 36, 39, 41, 43, 44, 49, 52, 53, 54, 56, 58, 64, 65, 66], "count_all_cap": 22, "count_bullet_point": 22, "count_charact": 3, "count_difficult_word": 21, "count_ellips": 22, "count_emoji": 22, "count_emphasi": 22, "count_line_break": 22, "count_link": 22, "count_match": [19, 49], "count_messag": 3, "count_numb": 22, "count_parenthes": 22, "count_quot": 22, "count_responding_to_someon": 22, "count_spacy_match": 19, "count_syl": 21, "count_turn": 25, "count_turn_taking_index": 25, "count_user_refer": 22, "count_word": 3, "countabl": 65, "countd": 36, "counterfactu": 50, "cours": [16, 31, 34, 36, 63], "creat": [0, 1, 2, 13, 19, 31, 40, 42, 61, 62, 64, 65, 66, 71], "create_chunk": 63, "create_chunks_messag": 63, "create_cumulative_row": 71, "credit": 33, "crowd": 13, "csv": [0, 1, 2, 61, 62, 67], "cumul": [1, 2, 71], "cumulative_group": [0, 1, 2, 71], "current": [1, 11, 23, 31, 34, 35, 36, 40, 45, 46, 58, 61, 64, 71], "curt": 43, "custom": [0, 62], "custom_featur": [0, 1, 2, 61], "customiz": 62, "cut": 1, "cutoff": [2, 15, 47, 64], "d": [1, 31, 34, 36], "dale": [1, 21, 39, 64, 70], "dale_chall_help": 21, "danescu": 50, "dash": 22, "data": [0, 2, 6, 7, 8, 9, 13, 19, 20, 32, 37, 40, 41, 47, 51, 55, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "datafram": [0, 1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 23, 25, 28, 37, 47, 49, 59, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "dataknowsal": 15, "dataset": [1, 2, 9, 12, 13, 28, 31, 41, 47, 52, 61, 64, 65, 66, 73], "date": [1, 61], "datetim": [23, 58], "dcosta": 62, "deal": [50, 59], "death": 1, "debat": 59, "decid": 62, "decis": [1, 13, 62], "declar": [1, 61, 62, 69], "deepli": 62, "default": [0, 1, 2, 5, 13, 16, 30, 34, 35, 42, 47, 62, 63, 66, 67, 71, 73], "defer": [17, 50], "defin": [0, 11, 21, 31, 34, 36, 40, 59, 62, 64, 65, 66, 70], "definit": [1, 3, 44], "degre": [6, 30, 36, 45, 46, 55], "delet": 29, "deliber": 1, "demo": 61, "democrat": 1, "demystifi": 62, "denomin": 59, "densiti": 60, "dep_": 49, "dep_pair": 19, "depend": [0, 1, 10, 19, 32, 49, 52, 61, 63], "deriv": [2, 11, 65, 66], "describ": [11, 62], "design": [0, 1, 2, 13, 34, 62], "desir": [2, 63, 72], "detail": [0, 1, 33, 41, 43, 61, 62], "detect": [1, 32, 37, 38, 47, 48, 49, 54], "determin": [13, 18, 31, 35, 36, 40, 45, 46, 71], "dev": 24, "develop": [5, 37, 40, 62], "deviat": [4, 5, 29, 40, 41, 55, 58, 65, 72, 73], "df": [4, 8, 9, 12, 13, 16, 18, 23, 28, 63, 71], "dict": [17, 19, 28, 67], "dictionari": [15, 17, 19, 28, 30, 42, 49, 67], "did": [1, 31, 36, 37, 47, 50, 54, 62], "didn": [31, 36], "differ": [1, 2, 4, 11, 12, 23, 29, 31, 34, 36, 37, 39, 40, 44, 45, 46, 47, 49, 55, 62, 63, 64, 65, 66, 71], "differenti": [49, 59], "difficult": [21, 33], "difficult_word": 21, "difficulti": 33, "dimens": [40, 62], "dimension": [34, 35], "dinner": 41, "direct": [34, 43, 45, 47, 50, 69], "direct_quest": [32, 50, 54], "direct_start": 50, "directli": [1, 62, 69], "directori": [0, 1, 2, 19, 61, 65, 67], "disagr": 49, "disagre": 51, "discours": [31, 36], "discret": [31, 36, 45, 46], "discurs": [0, 1, 6, 8, 39, 40, 61, 65, 66], "discursive_divers": 11, "discus": 8, "discuss": [0, 1, 31, 34, 39, 40, 42, 43, 61, 62, 71], "dispers": 68, "displai": [34, 42, 46], "dispos": 1, "distanc": [34, 35, 40], "distinct": [36, 59], "distinguish": 59, "div": 16, "diverg": [6, 34, 35], "divers": [0, 1, 6, 8, 13, 39, 61, 65], "divid": [16, 34, 59, 63], "dl": [21, 24], "do": [0, 1, 29, 31, 34, 36, 37, 43, 49, 50, 54, 62, 69], "doc": 19, "doc_top": 13, "document": [1, 17, 61, 69], "doe": [1, 2, 29, 40, 42, 43, 45, 47, 54, 61, 71], "doesn": [0, 1, 2, 29, 31, 36, 45, 61], "doi": [5, 6, 21, 24, 64], "domain": 50, "don": [31, 36, 49, 54, 62, 67], "done": [2, 50], "dot": 22, "doubl": 30, "down": [31, 36], "download": [1, 61], "download_resourc": [1, 61], "downstream": [17, 62], "dozen": 62, "drive": [62, 69], "driver": [2, 61, 64, 65, 66], "drop": [2, 64], "due": [34, 59], "duncan": 62, "duplic": [1, 2, 71], "durat": [58, 63], "dure": [2, 55, 59, 62], "dynam": [59, 61], "e": [0, 1, 2, 4, 15, 20, 29, 30, 31, 32, 34, 35, 36, 37, 38, 41, 42, 47, 48, 49, 52, 54, 56, 59, 63, 65, 66, 71], "e2": [21, 70], "each": [0, 1, 2, 3, 4, 7, 8, 9, 11, 12, 15, 17, 19, 23, 25, 28, 30, 31, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 55, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "earlier": [0, 1, 2], "easi": [1, 21, 62, 70], "easier": [21, 42], "easili": 33, "easy_word": 21, "eat": 34, "echo": 31, "econom": 37, "edg": [29, 59], "edu": [1, 12, 16, 17, 70], "effect": [1, 41], "effici": 1, "effort": 55, "either": [20, 23, 52, 55], "elaps": [23, 58], "element": [1, 6], "ellips": [22, 48, 64], "els": [1, 22, 47, 64], "embed": [8, 31, 34, 35, 36, 45, 46, 65, 66, 67, 69], "emili": [30, 35, 45, 46, 47, 59, 62], "emoji": [22, 48, 64], "emoticon": 48, "emphas": [22, 48, 64], "emphasi": 48, "empirica": [1, 2, 71], "emploi": 45, "empti": [2, 13], "en": [21, 24, 70], "en_core_web_sm": [1, 61], "enabl": 71, "enclos": 22, "encod": [1, 8], "encompass": 62, "encount": [1, 34, 35, 61], "encourag": 64, "end": [0, 1, 15, 20, 23, 34, 54, 62, 63], "engag": 43, "engin": 2, "english": [34, 42], "enjoi": 62, "ensur": [0, 1, 40, 49, 61, 63, 67, 71], "entir": [1, 12, 36, 40, 41, 52, 59, 62, 73], "entiti": [0, 1, 2, 15, 39, 64], "entityrecogn": 47, "entri": 28, "ep8dauru1ogvjurwdbof5h6ayfbslvughjyiv31d_as6ppbt": 5, "equal": [1, 21, 23, 34, 37, 40, 55, 59, 61, 62, 63], "equival": [1, 41, 55, 61], "eric": 62, "error": [1, 16, 61], "especi": [41, 62], "essenti": [51, 71], "estim": 31, "et": [1, 5, 14, 16, 18, 21, 24, 30, 31, 32, 33, 34, 35, 36, 38, 42, 43, 44, 49, 50, 52, 53, 54, 56, 57, 58, 59, 60, 64], "etc": [10, 15, 16, 17, 42], "evalu": [5, 47, 50], "evan": 62, "even": [0, 1, 2, 34, 37, 42, 62, 63, 67], "evenli": [34, 55], "event": [1, 34, 55, 61], "ever": 62, "everi": [1, 4, 13, 31, 34, 35, 36, 62], "everybodi": [31, 36], "everyon": [31, 36, 47, 62], "everyth": [31, 36, 56], "everywher": [31, 36], "evolut": 35, "evolv": [35, 71], "exactli": [1, 2, 71], "examin": [40, 62, 63], "exampl": [0, 10, 11, 15, 21, 24, 29, 31, 32, 34, 37, 42, 43, 48, 50, 51, 54, 56, 59, 60, 61, 62], "example_data": 1, "exce": 15, "exchang": [12, 35, 39, 40, 45, 55, 64], "exclud": [0, 41, 42], "exclus": [41, 42], "excus": 32, "exhibit": 35, "exist": [0, 1, 2, 55, 61, 62, 63, 64, 67], "expand": 49, "expect": [1, 37, 47], "expected_valu": 47, "explain": 29, "explan": [29, 43], "explor": [61, 62], "express": [5, 14, 30, 31, 32, 36, 38, 42, 64], "extend": 1, "extens": [43, 44], "extent": [1, 4, 7, 12, 31, 34, 35, 37, 51, 55, 59], "extern": 48, "extra": 51, "extract": [1, 17, 19, 28, 40, 50, 64], "extrem": [55, 56, 57], "face": 51, "facilit": [62, 71], "fact": [4, 35, 50, 54, 59], "factual": [17, 24, 50], "fail": [1, 61], "fals": [1, 2, 31, 54, 61, 71], "famili": 42, "far": [34, 35, 46, 50, 62], "faster": 14, "feat_count": 19, "featuer": 2, "featur": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 61, 63, 64, 65, 66, 67], "feature_build": [0, 1, 61], "feature_method": [64, 65], "featurebuild": [0, 2, 47, 61, 69], "few": [48, 62], "fewer": [12, 60], "fflow": 11, "field": [13, 17], "file": [0, 1, 2, 12, 14, 19, 65, 67], "filenam": [0, 1, 19], "filenotfounderror": 67, "fill": 71, "filler": [37, 60], "filler_paus": 49, "filter": [19, 62], "final": [1, 2, 34, 42, 62], "find": [1, 19, 28, 50], "fingertip": 62, "finit": 55, "first": [0, 1, 2, 11, 12, 16, 19, 31, 34, 35, 36, 39, 40, 41, 42, 45, 46, 49, 52, 54, 59, 62, 64, 70, 71], "first_person": 12, "first_person_plur": 49, "first_person_raw": [12, 16], "first_person_singl": 49, "five": 37, "fix": 52, "flag": 71, "float": [2, 4, 5, 6, 8, 10, 13, 14, 16, 21, 24, 25, 28, 68], "floor": 59, "flow": [0, 1, 7, 31, 36, 39, 41, 45, 46, 61, 64], "focal": [31, 36], "focu": 41, "folder": [0, 1, 19], "follow": [1, 2, 14, 16, 17, 29, 31, 32, 33, 41, 42, 47, 49, 50, 53, 55, 59, 60, 61, 64, 65], "for_m": 49, "for_you": 49, "forc": [0, 1, 61], "form": 1, "formal_titl": 49, "format": [1, 8, 17, 22, 47, 48, 61, 62, 64], "former": [45, 46], "formula": [14, 33, 59, 64, 70], "fornt": 1, "forward": [0, 1, 7, 39, 41, 61, 64], "forward_flow": 35, "found": [1, 5, 28, 30, 33, 61, 69], "four": [1, 8], "fourth": 33, "frac": 55, "fraction": 59, "framework": [49, 50, 62], "frequenc": [28, 31, 44, 64], "frequency_dict": 28, "fridai": 34, "from": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 21, 28, 29, 31, 32, 33, 34, 35, 36, 39, 41, 42, 49, 50, 51, 53, 55, 56, 57, 58, 61, 62, 64, 65, 66, 67, 71], "full": [1, 2, 37], "full_empirical_dataset": 1, "fulli": [32, 48], "functinon": 12, "function": [1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 20, 21, 23, 28, 31, 39, 44, 45, 46, 50, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73], "function_mimic_word": 28, "function_mimicry_scor": 28, "function_word_mimicri": 28, "function_word_refer": 28, "fund": 62, "further": [1, 2, 61, 71], "futur": [23, 66], "g": [0, 1, 4, 15, 20, 29, 31, 32, 36, 37, 38, 41, 42, 47, 48, 52, 54, 59, 63, 65, 66, 71], "game": [1, 2, 59, 71], "gaug": [33, 52], "gener": [0, 1, 2, 9, 11, 12, 16, 21, 31, 34, 35, 36, 40, 42, 45, 46, 49, 51, 59, 61, 67, 69, 71, 72], "generaliz": 23, "generate_bert": 67, "generate_certainty_pkl": 67, "generate_lexicon_pkl": 67, "generate_vect": 67, "gensim": 40, "get": [0, 16, 20, 21, 28, 30, 31, 36, 49, 66], "get_all_dd_featur": 11, "get_averag": 72, "get_centroid": 66, "get_certainti": 5, "get_certainty_scor": 64, "get_content_words_in_messag": 28, "get_conversation_level_aggreg": 65, "get_cosine_similar": 6, "get_dale_chall_easy_word": [21, 70], "get_dale_chall_score_and_classf": 64, "get_dd": 6, "get_dd_featur": 8, "get_dep_pair": [19, 49], "get_dep_pairs_noneg": [19, 49], "get_discursive_diversity_featur": 65, "get_first_pct_of_chat": 2, "get_first_person_word": [12, 70], "get_forward_flow": [7, 64], "get_function_word": 70, "get_function_words_in_messag": 28, "get_gini": 68, "get_gini_featur": 65, "get_info_divers": 13, "get_info_exchange_wordcount": 12, "get_liwc_r": 14, "get_max": 72, "get_mimicry_bert": 28, "get_min": 72, "get_moving_mimicri": 28, "get_named_ent": 64, "get_nan_vector": 27, "get_polarity_scor": 24, "get_politeness_strategi": 17, "get_politeness_v2": 18, "get_proportion_first_pronoun": 16, "get_question_word": 70, "get_reddit_featur": 64, "get_senti": 67, "get_stdev": 72, "get_subjectivity_scor": 24, "get_sum": 72, "get_team_bursti": 4, "get_temporal_featur": [4, 64], "get_time_diff": 23, "get_time_diff_startend": 23, "get_turn": 25, "get_turn_id": 71, "get_turn_taking_featur": 65, "get_unique_pairwise_combo": 6, "get_user_average_datafram": 72, "get_user_level_aggreg": 65, "get_user_level_averaged_featur": 66, "get_user_level_summary_statistics_featur": 66, "get_user_level_summed_featur": 66, "get_user_network": [11, 66], "get_user_sum_datafram": 72, "get_variance_in_dd": 26, "get_within_person_disc_rang": 27, "get_word_ttr": 16, "get_zscore_across_all_chat": 73, "get_zscore_across_all_convers": 73, "gina": 62, "gini": [39, 62, 65, 68], "gini_coeffici": [11, 69], "github": [0, 1, 2, 18, 71], "give": [1, 29, 37, 61], "give_ag": 49, "given": [5, 6, 13, 14, 28, 30, 31, 33, 34, 35, 36, 40, 41, 55, 59, 66, 67, 71], "go": [1, 34, 35, 45, 46, 50, 62], "goal": 62, "good": [50, 56, 62], "goodby": 49, "googl": [0, 1], "got": [31, 36], "gotta": [31, 36], "grade": 33, "grader": 21, "grai": 35, "grammat": 36, "granularli": 35, "grate": 62, "gratitud": [17, 49, 50], "great": [47, 50, 51, 56, 59, 60, 62], "greater": 55, "greet": 50, "groceri": 41, "group": [0, 1, 2, 4, 13, 29, 33, 34, 41, 52, 59, 62, 68, 71, 72], "grouping_kei": [0, 1, 2, 71], "gt": 22, "guess": 10, "gun": 1, "gy": 15, "gym": 34, "ha": [1, 2, 32, 34, 35, 37, 42, 43, 46, 52, 54, 55, 56, 59, 62, 63, 71], "had": [1, 31, 36, 54, 61], "hadn": [31, 36], "handl": [19, 29, 71], "happen": [1, 2, 55, 62, 63], "happi": 42, "harder": 21, "hashedg": [17, 50], "hasn": [31, 36], "hasneg": 50, "hasposit": 50, "hate": 31, "have": [0, 1, 2, 10, 12, 16, 31, 34, 36, 37, 40, 41, 42, 45, 46, 50, 54, 59, 60, 61, 62, 71], "haven": [31, 36], "he": [1, 31, 36], "header": 18, "hear": 32, "heart": [61, 62], "heat": 1, "heavi": 62, "hedg": [11, 30, 39, 49, 50, 64], "hei": [1, 35, 45, 46, 50], "helena": [47, 62], "hello": [43, 49], "help": [0, 31, 34, 36, 43, 45, 46, 52, 58, 69], "helper": [23, 67], "her": [30, 31, 36], "here": [0, 1, 29, 34, 41, 42, 47, 61, 66], "herself": [31, 36], "hesit": [60, 64], "hi": [31, 35, 36, 43, 45, 46], "hierach": 71, "hierarch": 71, "high": [0, 1, 2, 61, 62, 71], "higher": [21, 31, 34, 36, 40, 41, 42, 44, 45, 46, 55, 60], "highest": 71, "highlight": 1, "him": [31, 36], "himself": [31, 36], "hmm": [31, 36], "hoc": 62, "hole": 62, "home": 42, "homework": 34, "homonym": 31, "hope": 35, "host": [45, 46], "hour": 48, "how": [1, 5, 29, 30, 31, 34, 35, 36, 39, 43, 45, 51, 52, 54, 56, 62], "howev": [0, 1, 3, 35, 40, 42, 44, 54, 56, 61, 62], "howitwork": 1, "html": [15, 17, 24], "http": [1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 18, 21, 24, 41, 45, 46, 47, 64, 68, 70, 71], "hu": [1, 42, 62], "hug": 51, "huggingfac": 1, "huh": [31, 32, 36], "human": [37, 50, 62], "hyperlink": 48, "hyphen": [1, 61], "hypothet": 42, "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 71, 73], "iby1": 5, "id": [2, 4, 7, 23, 28, 62, 66, 68, 71, 72, 73], "idea": [12, 35, 40, 47, 51], "ident": [34, 35], "identif": 1, "identifi": [0, 1, 2, 4, 8, 9, 15, 23, 25, 30, 41, 47, 50, 52, 61, 63, 64, 71, 72], "identiif": [13, 71], "ignor": [1, 32], "illustr": [1, 41, 48, 62], "imagin": 1, "immedi": [31, 35, 64], "impact": [1, 60], "impersonal_pronoun": 49, "implement": 64, "impli": 37, "import": [31, 32, 36, 44, 45, 62, 69], "incent": 13, "includ": [1, 2, 10, 17, 22, 31, 32, 35, 36, 42, 45, 46, 51, 52, 56, 62, 66, 71], "inclus": [13, 71], "incongru": [8, 34], "incorpor": [1, 42, 45, 46], "increas": [1, 42, 62], "increment": 71, "independ": 1, "index": [1, 2, 4, 13, 25, 37, 39, 55, 61, 65], "indic": [1, 2, 16, 21, 22, 30, 32, 34, 35, 36, 40, 41, 43, 44, 48, 49, 50, 52, 55, 60, 63, 71], "indirect": 50, "indirect_btw": 50, "indirect_greet": 50, "indirectli": 69, "individu": [0, 1, 5, 11, 31, 34, 37, 45, 50, 59, 60, 62, 72], "inequ": 37, "infer": [1, 51, 67], "influenc": 1, "info": [13, 14, 18, 64], "info_divers": 13, "info_exchang": 64, "info_exchange_wordcount": [41, 64], "info_exchange_zscor": 11, "inform": [1, 6, 11, 12, 13, 24, 32, 34, 39, 48, 62, 64, 65], "informal_titl": 49, "information_divers": 11, "initi": [2, 62, 63, 64, 65, 66], "input": [0, 2, 4, 6, 12, 13, 14, 15, 16, 19, 20, 21, 22, 28, 31, 50, 55, 60, 62, 63, 64, 65, 66, 67, 71, 72], "input_column": [65, 66], "input_data": [25, 68, 72], "input_df": [1, 2, 61, 71], "inquiri": [30, 39, 52], "insid": 1, "insight": 1, "inspir": 15, "instal": [1, 61, 62], "instanc": [1, 22, 50, 59, 66], "instanti": 2, "insteac": 1, "instead": [1, 2, 62], "instruct": [1, 61], "int": [2, 3, 10, 13, 15, 16, 19, 20, 21, 22, 28, 63, 64], "intact": 71, "integ": [13, 40, 47], "intend": 59, "interact": [1, 11, 43, 44, 62, 69], "interconnect": 62, "interest": [1, 61, 62], "interfac": 62, "intermedi": [59, 64], "intern": 29, "interpret": 23, "interrupt": 59, "interv": [58, 65], "introduc": 62, "introduct": [11, 61], "invalid": 67, "invers": 64, "involv": [41, 62, 65], "io": [24, 47], "ipynb": [0, 1], "is_hedged_sentence_1": 10, "isn": [1, 31, 36], "issu": [1, 31, 36, 37, 42, 61], "ital": 64, "italic": 22, "item": [0, 71], "its": [0, 2, 15, 31, 35, 36, 40, 41, 47, 54, 55, 64, 69], "itself": [23, 31, 36, 44], "john": 1, "jonson": 62, "journal": [5, 64], "jurafski": 70, "juri": 1, "juries_df": 1, "jury_conversations_with_outcome_var": 1, "jury_feature_build": 1, "jury_output_chat_level": 1, "jury_output_conversation_level": 1, "jury_output_turn_level": 1, "jury_output_user_level": 1, "just": [0, 1, 2, 31, 36, 46, 50, 59, 61, 62], "katharina": 34, "keep": [1, 71], "kei": [1, 2, 4, 19, 28, 30, 54, 61, 71], "keyerror": 71, "keyword": [19, 49], "kind": [10, 62], "kitchen": 42, "knob": 0, "know": [1, 30], "knowledg": 29, "known": [1, 32, 61], "kumar": 62, "kw": 19, "lab": [1, 2, 62, 71], "label": [1, 15, 21, 51], "lack": [31, 38, 45, 46], "languag": [15, 34, 42, 50, 62], "larg": [31, 69], "larger": [0, 61], "last": [1, 31], "late": 32, "later": [0, 1, 2, 61], "latter": [31, 36], "lda": [13, 40], "learn": [61, 62], "least": [10, 32, 42, 63, 67], "led": 62, "legal": 49, "lemmat": [13, 40], "len": 28, "length": [14, 35, 39, 41, 42, 44], "less": [13, 32, 50, 52, 55, 62, 63], "let": [41, 49, 53], "let_me_know": 49, "letter": [49, 71], "level": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 14, 16, 23, 61, 64, 65, 66, 71, 72], "lexic": [10, 12, 14, 16, 31, 32, 36, 60, 62, 64], "lexical_featur": [14, 64], "lexical_features_v2": [10, 11], "lexicon": [5, 10, 14, 30, 39, 50, 52, 67, 69], "lexicons_dict": 67, "librari": [34, 51, 56, 57], "lift": 62, "light": 61, "like": [1, 22, 31, 34, 36, 41, 50, 61, 62], "limiat": 32, "limit": [11, 32, 37, 42, 54], "line": [0, 1, 19, 22, 48, 61, 62, 64], "linear": 64, "linguist": [18, 19, 30, 39, 50, 52], "link": [22, 29, 48, 50, 64], "list": [1, 2, 6, 7, 10, 11, 12, 13, 15, 19, 20, 21, 22, 28, 31, 33, 36, 37, 42, 48, 49, 50, 53, 54, 61, 64, 65, 66, 68, 70, 71], "literatur": 62, "littl": 38, "littlehors": 1, "liu": [42, 52], "live": [1, 54], "liwc": [14, 30, 39, 51, 52, 56, 62], "liwc_featur": [10, 14], "lix": 34, "ll": [1, 31, 36, 61], "load": [19, 69], "load_saved_data": 19, "load_to_dict": 19, "load_to_list": 19, "loc": 15, "local": [1, 51, 61], "locat": [1, 62], "long": [4, 42], "longer": [30, 41, 43, 48, 61, 62], "look": [2, 34, 61, 65, 66], "loos": 36, "lot": [31, 36], "loud": 60, "love": [31, 56], "low": [1, 2, 29, 55, 60, 71], "lower": [21, 31, 33, 36, 41, 42, 44, 55, 60], "lowercas": [2, 13, 40, 48, 49, 71], "lowest": 71, "lpearl": 16, "lst": 6, "m": [30, 31, 36], "made": [1, 23, 35, 59, 61, 62], "magnitud": 55, "mai": [1, 2, 11, 31, 32, 35, 36, 37, 41, 42, 43, 44, 54, 61, 62, 71], "main": [1, 2, 5, 62, 64, 65, 66], "make": [0, 1, 5, 34, 42, 55, 56, 62, 66, 69, 71], "man": 62, "mani": [1, 4, 11, 32, 37, 41, 60, 62, 66], "manner": [55, 62], "manual": [1, 61], "map": [13, 34], "mark": [19, 20, 22, 43, 54, 64, 71], "marker": [18, 32, 39, 42, 50, 51, 52, 54, 56], "marlow": 44, "matarazzo": 62, "match": [5, 16, 19, 30], "math": 34, "matter": 47, "max": 66, "max_num_chunk": 63, "maxim": [34, 35, 37], "maximum": [63, 65, 72], "mayb": [38, 47], "mcfarland": 70, "me": [31, 32, 36, 41, 50, 53], "mean": [0, 1, 4, 6, 11, 13, 21, 29, 31, 34, 36, 40, 41, 42, 47, 55, 56, 58, 61, 62, 65, 66, 73], "meaning": [41, 55], "meaningless": 41, "meant": 39, "measur": [0, 7, 12, 13, 20, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 51, 52, 54, 55, 56, 57, 58, 59, 60, 62, 64, 68], "mechan": 32, "medium": 21, "meet": 48, "member": [13, 34, 37, 55], "merg": [2, 8, 65, 66], "merge_conv_data_with_origin": 2, "messag": [0, 1, 2, 3, 4, 5, 8, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 28, 30, 31, 34, 35, 36, 37, 39, 41, 45, 46, 47, 48, 50, 51, 52, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 71, 73], "messaga": 61, "message_col": [0, 1, 2, 12, 13, 14, 61, 64, 65, 67, 71], "message_embed": [6, 7, 8], "message_lower_with_punc": 71, "metadata": [0, 1], "method": [5, 31, 41, 50, 62], "metric": [1, 8, 30, 34, 35, 46, 47, 48, 55, 66], "michael": 1, "mid": [1, 2, 71], "middl": [21, 34, 63], "might": [0, 1, 29, 43, 48, 53], "mikeyeoman": [14, 18, 64], "mileston": 34, "mimic": [28, 31, 36, 45], "mimic_word": 28, "mimick": [28, 31, 64], "mimicri": [0, 1, 28, 31, 35, 36, 39, 61, 64], "mimicry_bert": [45, 46], "mind": [1, 35, 50], "mine": [31, 36, 53, 59], "minim": [0, 41, 60], "minimum": [65, 72], "minu": [12, 41, 64], "minut": [55, 58], "mirror": 1, "miss": [1, 32, 61, 71], "mitig": [31, 36], "mizil": 50, "mm": [31, 36], "mnsc": 6, "modal": 50, "mode": 60, "model": [1, 13, 15, 31, 34, 35, 36, 40, 45, 46, 47, 51, 62, 67], "modif": 35, "modifi": [9, 19, 32, 64], "modul": [0, 1, 11, 34, 49, 61, 69], "monologu": 59, "more": [0, 1, 2, 11, 12, 22, 23, 24, 31, 32, 34, 36, 37, 40, 41, 42, 43, 44, 45, 46, 50, 52, 55, 59, 61, 62, 71], "morn": 1, "most": [24, 31, 55, 62, 69], "motiv": 61, "move": [0, 1, 28, 31, 36, 39, 45, 59, 61], "movi": 31, "much": [1, 31, 34, 35, 36, 45, 62], "multi": [1, 2, 71], "multidimension": [45, 46], "multipl": [0, 1, 2, 19, 62, 71], "must": [1, 6, 62, 71], "my": [30, 31, 35, 36, 45, 46, 50, 53], "my_chat_featur": 1, "my_feature_build": 61, "my_fil": [0, 1], "my_output_chat_level": 61, "my_output_conversation_level": 61, "my_output_user_level": 61, "my_pandas_datafram": 61, "myself": [31, 36, 53], "n": [35, 45, 46, 47, 57, 59, 60], "n_chat": 59, "na": [5, 33, 43, 44, 48, 49, 50, 53, 58], "naiv": [2, 20, 32, 34, 38, 39, 53, 56, 57, 64], "name": [0, 1, 2, 4, 7, 8, 9, 12, 13, 14, 15, 17, 19, 23, 25, 28, 30, 32, 35, 39, 45, 46, 50, 51, 56, 61, 63, 64, 66, 67, 68, 71, 72, 73], "name_to_train": 47, "named_ent": [15, 47], "named_entity_recognition_featur": 11, "nan": 34, "nate": [35, 45, 46], "nathaniel": [35, 45, 46], "nativ": 50, "natur": [43, 55], "ndarrai": 68, "nearest": [13, 40], "nearli": 62, "necessari": [63, 67], "need": [0, 1, 2, 21, 62, 66, 67], "need_sent": 67, "need_senti": 67, "neg": [24, 29, 31, 34, 35, 36, 42, 50, 51, 52, 54, 56, 62, 67], "negat": [19, 49], "negative_bert": 51, "negative_emot": [49, 51, 52, 56], "negoti": 62, "neighborhood": 54, "neither": 30, "ner": 15, "ner_cutoff": [0, 1, 2, 47, 64], "ner_train": 64, "ner_training_df": [0, 1, 2, 47, 64], "nest": [0, 1, 2, 22, 71], "net": [45, 46], "network": 11, "neutral": [5, 24, 30, 51, 55, 67], "neutral_bert": 51, "never": 1, "new": [1, 4, 13, 34, 64, 65, 66, 72], "new_column_nam": 72, "next": [1, 32, 47, 58], "nice": [50, 54], "nicknam": 1, "niculescu": 50, "night": 31, "nikhil": [59, 62], "nltk": [1, 42, 61], "nobodi": [31, 36], "nois": 32, "non": [1, 2, 28, 31, 37, 48, 62, 71], "none": [2, 19, 23, 37, 55, 64, 65, 66, 67], "nor": 30, "normal": [19, 31], "notabl": 62, "note": [1, 2, 12, 16, 20, 42, 61, 71], "notebook": [0, 1], "noth": [31, 36, 56], "noun": 1, "novel": [45, 46], "now": 1, "nowher": [31, 36], "np": 68, "ntri": 32, "null": 34, "num": 48, "num_char": 65, "num_chunk": [27, 63], "num_hedge_word": 10, "num_messag": 65, "num_named_ent": [15, 47], "num_row": 63, "num_top": 13, "num_word": [12, 16, 65], "number": [0, 3, 11, 12, 13, 15, 16, 19, 20, 21, 22, 23, 25, 28, 31, 32, 34, 36, 37, 40, 41, 42, 43, 44, 47, 48, 49, 54, 56, 58, 59, 60, 62, 63, 64, 66, 69, 71, 72], "numer": [0, 1, 13, 33, 68, 72, 73], "numpi": [1, 61, 68], "o": 35, "object": [1, 2, 19, 44, 50, 57, 58, 61, 62, 64, 65, 66], "obtain": [13, 17, 23, 24, 34], "occur": [0, 4, 31, 42, 71], "occurr": 19, "off": [1, 31, 36], "offer": 0, "offici": 61, "often": [36, 47, 48, 62], "oh": [31, 36, 48], "okai": [31, 36], "older": [1, 61], "on_column": [18, 23, 28, 68, 72, 73], "onc": [2, 11, 58, 61, 62], "one": [0, 1, 2, 4, 10, 12, 19, 23, 25, 29, 31, 32, 36, 37, 47, 51, 56, 59, 61, 62, 67, 68, 71, 73], "ones": [31, 36], "onli": [0, 1, 2, 5, 11, 23, 29, 31, 32, 34, 36, 37, 45, 53, 58, 59, 61, 62, 71], "onlin": [1, 32, 39, 64], "open": [0, 62, 66], "operation": [39, 50, 59], "opinion": [24, 31], "oppos": [2, 31, 34, 35, 55], "opposit": 34, "option": [1, 2, 37, 62, 63, 67, 71], "order": [0, 1, 35, 37, 42, 71], "org": [6, 15, 21, 24, 41, 70], "origin": [1, 2, 5, 12, 21, 31, 32, 35, 36, 37, 45, 46, 49, 59], "orthogon": 34, "other": [1, 9, 11, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 45, 46, 48, 51, 52, 54, 56, 58, 59, 61, 62, 64, 66, 71], "other_lexical_featur": [11, 64], "otherwis": [2, 10, 21, 23, 32, 38, 63, 67], "our": [0, 1, 2, 11, 13, 29, 31, 32, 36, 37, 39, 53, 59, 61, 71], "ourselv": 53, "out": [1, 2, 16, 19, 31, 36, 55, 60, 62], "outcom": [1, 44, 62], "output": [0, 1, 2, 10, 17, 19, 40, 61, 62, 64, 67], "output_file_path_chat_level": [0, 1, 2, 61], "output_file_path_conv_level": [0, 1, 2, 61], "output_file_path_user_level": [0, 1, 2, 61], "output_path": 67, "outsid": [1, 2, 12], "over": [1, 16, 29, 31, 34, 35, 36, 37, 53, 55, 60, 62, 71], "overal": [30, 31, 34, 36, 45, 46], "overrid": [0, 1], "overview": [0, 61, 62], "overwritten": 1, "own": [0, 1, 9, 35, 62], "p": [14, 55], "pacakg": 24, "pace": [43, 62], "packag": [17, 18, 40, 62], "pad": 19, "page": [1, 11, 29, 39, 61, 62, 69], "pair": [6, 19, 34, 49, 71], "pairwis": [6, 34], "panda": [0, 1, 2, 12, 14, 16, 23, 47, 64, 65, 66, 71, 72, 73], "paper": [4, 5, 12, 14, 18, 29, 40, 50, 64], "paragraph": 22, "param": 71, "paramet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 47, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "paramt": 1, "pardon": 32, "parenthes": [22, 48, 64], "parenthet": [22, 48], "pars": [16, 50, 60], "part": [1, 10, 13, 29, 36, 42, 52, 71], "particip": [1, 9, 37, 62], "particl": [31, 36], "particular": [11, 32, 34, 41, 45, 47, 51, 59, 62], "particularli": 42, "partner": 32, "pass": [1, 13, 21, 47, 71], "path": [0, 1, 2, 19, 67], "path_in": 19, "pattern": [4, 11, 19, 55, 62, 67], "paus": 4, "pd": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 18, 19, 23, 25, 63, 64, 65, 66, 67, 68, 71], "pdf": [5, 12, 13, 14, 16, 18, 21, 24, 64, 70], "penalti": 1, "pennebak": [12, 37, 41, 42, 52], "pennyslvania": 62, "peopl": [1, 32, 59, 62], "per": [1, 6, 9, 14, 19, 42, 63, 66, 72], "percentag": [2, 21], "perfect": [37, 59], "perform": [0, 1, 2, 16, 50], "perhap": 1, "period": [4, 34, 55], "person": [1, 8, 12, 15, 16, 32, 34, 39, 41, 42, 50, 59, 62, 64, 70], "perspect": 1, "petrocelli": 5, "pgcr_yeoman": 14, "phrase": [19, 30, 38, 54], "phrase_split": 19, "pickl": [19, 67], "piec": [36, 42, 59, 63], "pl": 50, "place": [55, 61, 62], "plan": [34, 35, 45, 46], "player": 59, "pleas": [1, 38, 49, 50, 61, 62], "please_start": 50, "point": [22, 24, 34, 35, 45, 46, 48, 52, 64, 66], "poisson": 55, "polar": [24, 39, 51, 52, 64], "polit": [1, 17, 18, 30, 32, 38, 39, 42, 51, 52, 54, 56, 64], "politeness_featur": 11, "politeness_v2": 11, "politeness_v2_help": 11, "politenessstrategi": [17, 50], "portion": 0, "posit": [0, 11, 15, 24, 29, 31, 39, 42, 50, 51, 54, 56, 62, 64, 67], "positive_affect_lexical_per_100": [51, 52, 56], "positive_bert": 51, "positive_emot": [49, 51, 52, 56], "positivity_zscor": 64, "positivity_zscore_chat": 52, "positivity_zscore_convers": 52, "possess": 31, "possibl": [1, 34, 62, 66], "possibli": [38, 62], "practic": [14, 34, 35], "pre": [1, 4, 21, 37, 49, 64], "preced": [31, 35, 71], "precend": 35, "precis": 47, "precomput": 51, "predefin": 19, "predetermin": [31, 36], "predict": [2, 47, 51, 64], "prefer": [0, 1], "preload_word_list": 69, "prep_simpl": 19, "prep_whol": 19, "preposit": [31, 36], "preproces": 48, "preprocess": [0, 2, 13, 19, 40, 43, 49, 51, 69], "preprocess_chat_data": 2, "preprocess_conversation_column": 71, "preprocess_naive_turn": 71, "preprocess_text": 71, "preprocess_text_lowercase_but_retain_punctu": 71, "presenc": [2, 32, 67], "present": [1, 2, 30, 31, 38, 55, 62, 71], "prespecifi": 19, "prevent": 51, "previou": [1, 7, 28, 31, 36, 45, 46, 58, 64, 71], "primari": 34, "print": 2, "prior": [2, 64, 71], "priya": [47, 62], "probabl": [15, 47], "problem": 62, "procedur": 62, "proceed": 46, "process": [0, 1, 2, 4, 10, 21, 37, 55, 62, 64, 65, 67, 69, 71], "prodi": 15, "produc": [2, 34], "product": 15, "professor": 62, "progress": [1, 2], "project": [54, 62], "pronoun": [12, 16, 31, 36, 39, 41, 42, 64, 70], "proper": 1, "proport": [16, 39, 42, 64], "propos": 37, "provid": [0, 1, 2, 15, 29, 30, 33, 36, 39, 44, 47, 54, 62], "proxi": 42, "pseudonym": 1, "psycholog": 42, "pub": 70, "publish": [5, 30, 64], "pubsonlin": 6, "punctuat": [16, 19, 20, 21, 28, 43, 54, 60, 71], "punctuation_seper": 19, "puncut": 48, "pure": [24, 36], "purpos": 1, "put": [34, 50, 62, 66], "py": [0, 1, 14, 49], "pypi": [1, 61], "python": [1, 32, 41, 56, 57, 61, 62, 68], "qtd": 62, "qualiti": 41, "quantifi": [31, 36, 62], "quantiti": [37, 39, 41, 47], "quartil": 50, "question": [16, 19, 20, 29, 32, 39, 49, 50, 64, 66, 68, 70], "question_num": 11, "question_word": 20, "quick": [1, 43], "quickli": 0, "quit": 40, "quot": [22, 48, 64], "quotat": [22, 48], "rabbit": 62, "rain": 41, "rais": [67, 71], "random": 55, "rang": [5, 8, 24, 30, 33, 34, 35, 40, 51, 53, 55, 56, 57], "ranganath": [16, 31, 32, 36, 38, 43, 54, 70], "ranganath2013": 70, "ranganathetal2013_detectingflirt": 16, "rapid": [1, 4], "rare": [34, 35], "rate": [14, 42, 51], "rather": [31, 34, 35, 36, 37, 45, 46, 63], "ratio": [16, 39, 64], "raw": [12, 16, 21, 31, 33, 50, 64], "re": [1, 31, 36, 42, 50, 61], "read": [0, 1, 2, 16, 21, 29, 33, 61, 62, 64, 65, 66, 67], "read_csv": 1, "read_in_lexicon": 67, "readabl": [11, 33, 64, 70], "reader": 33, "readi": 1, "readili": 62, "readthedoc": 24, "real": [1, 55], "realit": 13, "realli": [31, 36, 50], "reason": [31, 36, 45, 46, 49], "reassur": 49, "recal": 47, "recept": [18, 32, 39, 42, 50, 51, 52, 54, 56, 62, 64], "recogn": [1, 43, 47], "recognit": [0, 1, 2, 39, 64], "recommend": [42, 62], "reddit": [48, 64], "reddit_tag": 11, "redditus": 48, "reduc": 63, "reduce_chunk": 63, "redund": [42, 62], "refer": [0, 1, 11, 22, 24, 28, 31, 42, 48, 52, 62, 64, 70], "reflect": [37, 43], "regardless": 1, "regener": [0, 2, 51, 67], "regenerate_vector": [0, 1, 2, 67], "regex": [14, 16, 49], "regist": 37, "regress": 1, "regular": [5, 14, 30, 32, 42, 55, 58], "reichel": [53, 58, 60], "reidl": [4, 13], "reinvent": 62, "rel": [41, 51, 52, 55, 60, 64], "relat": [1, 61, 62, 64], "relationship": 36, "relev": [1, 29, 42, 44, 49, 51, 56, 61, 64, 65], "reli": [31, 34, 35, 36, 69], "reliabl": [33, 42], "remain": [1, 30, 71], "rememb": 1, "remov": [2, 9, 13, 19, 28, 40, 43, 48, 49, 50, 71], "remove_active_us": 9, "renam": 1, "repair": [16, 39], "repeat": [60, 71], "repetit": 60, "replac": 19, "report": [1, 61], "repres": [2, 4, 6, 7, 11, 13, 23, 31, 34, 36, 42, 45, 46, 66, 67, 68, 71, 72, 73], "represent": [34, 38], "reproduc": [36, 62], "republican": 1, "request": [32, 50, 51], "requir": [0, 1, 20, 21, 31, 55, 61, 62, 64, 65, 66, 67], "research": [1, 2, 62], "reserv": 0, "resolv": 62, "resourc": [1, 39, 48, 61, 62], "respect": [1, 2, 12, 31, 36, 37, 69], "respons": [22, 48, 55, 58, 64], "restaur": [34, 56], "restrict": 71, "result": [40, 55, 65, 72], "retain": [2, 16, 20, 21, 60, 71], "retriev": 50, "retunr": 3, "return": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 30, 32, 43, 49, 50, 51, 55, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "reveal": 62, "revert": 50, "review": 62, "rewrit": 50, "rich": 62, "riedl": [13, 40, 55], "right": [31, 36, 61, 62], "roberta": [1, 39, 42, 52, 56, 64, 67], "robust": 13, "rocklag": [5, 30, 64], "room": 59, "root": [13, 40], "rough": [12, 54], "roughli": 31, "round": [13, 40, 59, 71], "round_num": 1, "row": [0, 1, 2, 9, 13, 25, 37, 40, 59, 63, 68, 71, 72, 73], "rowbotham": 62, "rucker": 5, "rule": [1, 69], "run": [0, 10, 12, 16, 35, 46, 47, 48, 51, 61, 69], "runtim": [1, 35], "sagepub": [5, 64], "sai": [1, 32, 50, 59], "said": [1, 36, 62], "same": [0, 1, 2, 31, 34, 37, 45, 48, 52, 59, 60, 61, 62, 71], "sampl": [61, 62], "sarcast": 48, "save": [0, 1, 2, 19, 64, 67], "save_featur": 2, "sbert": [1, 28, 31, 34, 35, 36, 45, 46, 64, 65, 67], "scale": [42, 51], "school": [21, 62], "scienc": [29, 39, 62], "scientist": [61, 62], "score": [4, 5, 11, 12, 13, 15, 21, 24, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 45, 46, 47, 51, 53, 56, 57, 64, 65, 67, 73], "script": [1, 61], "sea": 1, "seamless": 62, "search": [19, 61], "second": [0, 1, 4, 34, 42, 58, 59], "second_person": 49, "secr": [18, 49, 64], "section": [1, 29, 61], "see": [0, 1, 2, 30, 34, 38, 41, 45, 46, 47, 55, 62, 71], "seek": [5, 62], "segment": [0, 19], "select": [2, 4, 23, 28, 36, 45, 66, 67, 68, 71, 72, 73], "self": 2, "semant": [31, 34, 35, 41], "send": [1, 37, 55], "sens": [5, 31, 54, 66], "sent": [1, 37, 64], "sentenc": [0, 1, 10, 15, 19, 20, 21, 33, 34, 35, 36, 42, 45, 46, 47, 48, 54, 56, 61, 67], "sentence_pad": 19, "sentence_split": 19, "sentence_to_train": 47, "sentencis": 19, "sentiment": [1, 24, 31, 39, 42, 52, 56, 62, 64, 67], "separ": [1, 2, 19, 34, 51], "sepcifi": 1, "septemb": 40, "sequenc": [1, 59], "sequenti": 1, "seri": [12, 16, 23, 28, 42, 71, 73], "serv": 12, "set": [1, 2, 13, 23, 34, 48, 59], "set_self_conv_data": 2, "sever": [1, 30, 41, 42, 48, 51, 56, 61], "shall": 54, "share": [31, 36, 37], "she": [30, 31, 36], "shift": 34, "shop": 62, "short": [55, 58], "shorter": [13, 40, 41, 42, 43], "should": [0, 1, 2, 4, 14, 23, 28, 29, 31, 36, 47, 48, 54, 61, 62, 65, 66, 67, 68, 69, 71, 72, 73], "shouldn": [31, 36], "show": 37, "showeth": 62, "shruti": [35, 45, 46, 47, 62], "side": 31, "signal": [45, 55], "signifi": 42, "signific": [1, 61], "silent": 37, "similar": [1, 6, 7, 13, 28, 29, 31, 34, 35, 36, 40, 45, 46, 49, 62, 65], "similarli": [1, 35], "simpl": [0, 1, 16, 19, 42, 61, 62], "simpli": [1, 5, 11, 28, 56, 62], "simplifi": 1, "simplist": 41, "sinc": [1, 32, 41, 71], "singh": 62, "singl": [0, 1, 2, 11, 12, 19, 23, 31, 34, 35, 36, 37, 41, 45, 46, 59, 62, 71, 72], "singular": [12, 41, 64], "site": 16, "situat": 37, "size": [1, 13, 63], "skip": 1, "slightli": [32, 62, 63], "slow": 1, "small": 40, "so": [1, 2, 10, 30, 31, 36, 37, 50, 61, 62, 66], "social": [29, 39, 61, 62], "socsci": 16, "softwar": 62, "sohi": 62, "sol3": 4, "solut": 59, "solv": 62, "some": [0, 1, 11, 17, 29, 32, 34, 35, 37, 41, 61, 63], "somebodi": [31, 36], "someon": [22, 29, 31, 36, 47, 48, 61, 64], "someplac": [31, 36], "someth": 47, "sometim": 1, "somewhat": 35, "soon": 62, "sorri": [16, 32, 50], "sort": 10, "sound": [47, 51], "sourc": [4, 5, 6, 12, 13, 16, 17, 21, 34, 35, 50, 64, 68], "space": [34, 40, 71], "spaci": [1, 19, 47, 49, 50, 61], "span": 63, "spars": 32, "speak": [1, 31, 36, 37, 59, 60, 62], "speaker": [0, 1, 2, 6, 8, 9, 25, 31, 34, 35, 37, 38, 42, 45, 46, 61, 66, 71, 72], "speaker_id": [2, 61, 72], "speaker_id_col": [0, 1, 2, 6, 8, 9, 25, 26, 27, 61, 65, 66, 71, 72], "speaker_nicknam": [0, 1, 2, 6, 9, 59, 66, 71], "special": [0, 1, 2, 48, 71], "specif": [1, 2, 12, 32, 41, 48, 55, 61, 62, 69, 71], "specifi": [1, 2, 19, 47, 49, 67, 68, 71, 72, 73], "speciifc": 63, "spend": [51, 62], "spike": 55, "split": [19, 21, 43, 63], "spoke": 59, "spoken": [11, 37], "spread": 55, "squar": [13, 40], "ssrn": 4, "stabl": 40, "stack": 14, "stackoverflow": 68, "stage": [1, 2, 34, 71], "stamp": 55, "standard": [1, 4, 37, 40, 41, 49, 55, 58, 60, 65, 72, 73], "stanford": 70, "start": [0, 15, 19, 20, 22, 23, 50], "statement": [38, 42, 47, 48, 62, 64], "statist": [65, 66, 68], "statologi": 41, "stem": 42, "step": [1, 4, 28, 41, 45, 46, 51], "still": [41, 45, 46], "stochast": 40, "stop": [40, 62], "stopword": [13, 19], "store": [1, 12, 16, 41, 49, 51, 65, 67], "stoword": 42, "str": [2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 63, 64, 65, 66, 67, 68, 71, 72, 73], "straightforward": 29, "strategi": [17, 30, 32, 38, 39, 42, 49, 54, 64], "stream": 35, "strictli": 1, "string": [0, 1, 2, 4, 8, 12, 13, 14, 19, 23, 24, 50, 66, 67, 68, 71, 72, 73], "strongli": [1, 41, 61], "structur": [0, 36, 49], "student": [21, 33], "studi": [1, 34, 62], "style": [1, 31, 36, 59], "sub": [0, 1, 71], "subfold": 1, "subject": [5, 24, 39, 49, 64], "subjunct": 50, "sublist": 28, "submiss": 55, "subpart": [1, 71], "subsequ": [1, 30, 51, 58], "subset": 62, "substanc": 36, "substant": 31, "substanti": 1, "substr": 30, "subtask": 1, "subtract": [41, 58], "succe": 62, "success": [0, 1, 4, 31, 36, 43, 55, 58, 61], "suggest": [1, 13, 34, 42, 44, 50], "suit": [62, 64], "sum": [28, 34, 64, 65, 66, 72], "summar": [0, 1, 65, 66, 69], "summari": [65, 66, 72], "summariz": [0, 65], "summarize_featur": 69, "suppl": 6, "support": [1, 15, 61], "suppos": 1, "sure": 30, "swear": 49, "syllabl": 21, "syntax": [1, 32, 61], "system": [2, 59, 64], "t": [0, 1, 2, 15, 29, 31, 36, 45, 49, 54, 61, 62, 67], "tabl": 62, "tag": 39, "take": [1, 4, 5, 9, 14, 25, 29, 31, 34, 37, 39, 42, 55, 61, 65, 71], "taken": [59, 71], "talk": [1, 37, 47, 59, 62], "target": 15, "task": [1, 2, 59, 71], "tausczik": [12, 37, 41, 52], "tausczikpennebaker2013": 12, "team": [0, 1, 4, 11, 12, 13, 34, 39, 40, 59, 65], "team_bursti": 4, "team_comm_tool": [1, 61], "teamcommtool": 1, "technic": [29, 39, 61, 62], "teghxgbqdhgaaaaa": 5, "tempor": [0, 2, 55, 58, 64, 71], "temporal_featur": 11, "tend": [1, 34, 60], "term": [1, 28, 59], "termin": [1, 2, 61], "terribl": 51, "test": [13, 33, 47], "text": [0, 1, 2, 3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 28, 32, 33, 36, 42, 48, 55, 62, 64, 67, 71], "text_based_featur": 64, "textblob": [24, 39, 51, 52, 64], "textblob_sentiment_analysi": 11, "than": [1, 2, 11, 13, 31, 34, 35, 36, 37, 40, 41, 45, 46, 54, 60, 62, 63], "thee": 62, "thei": [0, 1, 29, 31, 34, 36, 37, 39, 47, 58, 59, 61, 62, 67], "them": [1, 2, 19, 28, 29, 31, 36, 50, 51, 55, 59, 61, 62, 64, 65, 66, 67], "themselv": [31, 36, 60], "theoret": 35, "theori": [34, 50], "therefor": [0, 1, 11, 37, 45, 59, 62, 69], "thi": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 18, 20, 21, 23, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 71, 72, 73], "thing": [48, 61], "think": [1, 38, 47], "thorough": [43, 62], "those": [1, 21, 31, 36, 61], "though": [34, 42], "thought": [1, 35, 45], "thread": [1, 61], "three": [0, 1, 22, 34, 37, 40, 51, 62, 69, 71], "threshold": [15, 47], "through": [1, 45, 46, 50, 61, 62], "throughout": [31, 35, 36, 40, 45, 46, 55, 63], "tht": 35, "thu": [1, 2, 34, 35, 36, 37, 46, 55, 71], "time": [0, 1, 4, 23, 34, 35, 39, 42, 48, 51, 55, 59, 61, 62, 63, 64, 65, 66, 71], "time_diff": 55, "timediff": 4, "timestamp": [0, 1, 2, 8, 23, 58, 61, 62, 63, 64, 71], "timestamp_col": [0, 1, 2, 8, 61, 63, 64, 65, 71], "timestamp_end": [1, 23, 61, 64], "timestamp_start": [1, 23, 61, 64], "todai": [34, 35, 41, 43, 45, 46, 47], "todo": 66, "togeth": [0, 62, 66], "token": [16, 19, 39, 49, 54, 64], "token_count": [19, 49], "too": [30, 31, 36, 62], "took": [1, 59], "tool": [1, 61, 62], "toolkit": [0, 1, 11, 42, 45, 46, 55, 62], "top": [1, 50, 59], "topic": [1, 13, 34, 40, 42, 43, 65], "tormala": 5, "total": [3, 12, 16, 25, 31, 34, 36, 37, 41, 44, 53, 59, 60, 62, 63, 64, 66, 72], "touch": [1, 61], "toward": [31, 36, 38, 42, 45, 46], "tradit": 49, "train": [1, 2, 15, 64], "train_spacy_n": 15, "transcript": 0, "transfom": [45, 46], "transform": [31, 34, 35, 36, 51], "transform_utter": 50, "treat": [1, 59, 61], "tri": [50, 64], "trivial": [3, 44, 62], "troubl": [1, 61], "true": [1, 2, 37, 61, 63, 67, 71], "truncat": 2, "truth_intensifi": 49, "ttr": 64, "tupl": [0, 1, 2, 15, 19, 64], "turn": [0, 1, 2, 25, 28, 31, 32, 37, 39, 61, 64, 65, 71], "turn_count": 59, "turn_df": 71, "turn_id": 71, "turn_taking_featur": 11, "twice": 63, "twitter": 51, "two": [0, 1, 2, 23, 31, 34, 36, 41, 45, 46, 52, 62, 63], "txt": 19, "type": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 37, 39, 52, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "typic": [1, 34, 40, 41, 42, 52, 60], "u": [1, 22, 31, 36, 48, 49, 58, 61], "uci": 16, "uh": [31, 36], "ulrich": 55, "um": [31, 36, 60], "umbrella": [8, 29, 34], "uncertain": [5, 30], "uncertainti": 30, "under": [0, 1, 10, 11, 12, 28, 40], "underli": 1, "underscor": [1, 61], "understand": [0, 33, 39, 43, 48, 58, 61, 62], "understood": 33, "uninterrupt": 59, "uniqu": [0, 1, 2, 6, 9, 13, 16, 23, 25, 41, 47, 52, 60, 61, 63, 71], "univers": 62, "unix": 58, "unless": [31, 36], "unpack": 62, "until": [31, 36, 45, 46], "unzip": [1, 61], "up": [1, 17, 21, 28, 31, 35, 36, 37, 45, 46, 51, 59, 61], "updat": [1, 9, 40, 54, 61], "upenn": 1, "upload": 13, "upon": 33, "upper": 42, "us": [0, 1, 2, 3, 5, 11, 12, 13, 14, 17, 19, 24, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 60, 62, 64, 65, 66, 67, 71], "usag": [21, 24], "use_time_if_poss": 63, "user": [0, 1, 2, 9, 15, 22, 37, 47, 48, 51, 61, 62, 63, 64, 65, 66, 69, 72], "user_data": [2, 65, 66], "user_df": 9, "user_level_featur": 2, "user_list": 9, "userlevelfeaturescalcul": [2, 66, 69], "usernam": [22, 48], "utf": 1, "util": [12, 21, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "utilti": 62, "utter": [0, 1, 2, 3, 4, 5, 13, 14, 15, 16, 17, 20, 21, 23, 24, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 54, 58, 60, 61, 67], "v": 13, "valenc": 51, "valid": [23, 55], "valu": [1, 2, 5, 6, 10, 12, 13, 18, 19, 23, 28, 30, 31, 34, 36, 37, 40, 41, 42, 45, 46, 47, 55, 59, 64, 68, 71, 72, 73], "vari": [13, 31, 34, 35, 42], "variabl": [1, 56, 57, 64, 65, 66], "varianc": [8, 34], "variance_in_dd": 11, "variat": [4, 32], "varieti": [42, 62], "variou": [19, 42, 64, 65, 66], "vast": 62, "ve": [0, 31, 36, 50, 61], "vec": 6, "vect_data": [7, 8, 28, 64, 65, 66], "vect_path": 67, "vector": [0, 1, 2, 6, 7, 8, 13, 28, 34, 35, 40, 55, 61, 64, 65, 67], "vector_data": [1, 61], "vector_directori": [0, 1, 2, 61, 65], "vein": 45, "verb": [19, 31, 36], "verbal": 32, "veri": [5, 30, 31, 34, 35, 36, 42, 49, 54], "verifi": 2, "verit": 62, "version": [1, 12, 14, 21, 40, 51, 61], "versu": [4, 29, 47, 55, 59], "via": [3, 44], "view": 50, "visit": 41, "voila": 62, "w": 31, "wa": [1, 2, 5, 12, 31, 32, 35, 36, 47, 51, 56, 59, 62, 71], "wai": [1, 2, 29, 30, 31, 32, 34, 49, 50, 54, 56, 57, 61, 62, 66], "waiai": 62, "wait": [4, 55], "walk": 1, "walkthrough": [0, 61, 62], "want": [1, 28, 34, 59, 61, 62, 67], "warn": 50, "watt": [1, 2, 62, 71], "we": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 14, 15, 16, 18, 23, 24, 28, 29, 30, 31, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59, 61, 62, 66, 67, 71], "web": 70, "week": 47, "weight": 66, "welcom": 61, "well": [29, 31, 36, 55, 62], "went": 41, "were": [1, 12, 31, 36], "western": 1, "wh": [19, 31, 36], "wh_question": [32, 49, 54], "wharton": 62, "what": [1, 2, 12, 16, 20, 29, 31, 32, 34, 35, 36, 39, 41, 45, 46, 47, 50, 54, 62, 63], "whatev": [1, 31, 36], "wheel": 62, "when": [1, 16, 20, 31, 33, 36, 47, 54, 55, 59, 60, 61, 62, 69, 71], "whenev": 71, "where": [0, 1, 2, 19, 20, 28, 31, 32, 36, 37, 40, 41, 42, 48, 50, 51, 54, 59, 61, 65, 68, 73], "wherea": [31, 34, 35, 36, 43], "wherev": [31, 36], "whether": [1, 2, 10, 16, 19, 32, 37, 38, 41, 43, 47, 57, 58, 62, 63, 64, 67, 71], "which": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 23, 25, 28, 31, 34, 35, 36, 37, 38, 40, 41, 42, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 64, 66, 68, 69, 71, 72, 73], "while": [31, 32, 34, 36, 37, 44, 45, 46, 55, 62, 71], "whitespac": 43, "who": [20, 31, 32, 36, 47, 51, 54, 59, 60, 62], "whole": [28, 59, 62, 71], "whom": [31, 36, 54], "whose": [31, 36, 54], "why": [20, 29, 31, 36, 54], "wide": 31, "wien": 62, "wiki": [21, 29, 70], "wikipedia": [21, 33, 37, 70], "williamson": 60, "wish": [1, 2, 18], "within": [0, 1, 2, 8, 11, 16, 30, 34, 35, 36, 41, 45, 46, 52, 55, 59, 60, 62, 63, 64, 68, 71, 73], "within_group": 2, "within_person_discursive_rang": 11, "within_task": [0, 1, 2, 71], "without": [1, 19, 31, 36, 42, 47, 54, 62, 69], "won": [0, 31, 36, 45], "wonder": 56, "woolei": 4, "woollei": [13, 40, 55], "wooten": 55, "word": [3, 10, 11, 12, 13, 14, 16, 19, 20, 21, 22, 28, 30, 32, 33, 37, 38, 39, 40, 41, 43, 45, 46, 48, 49, 52, 53, 54, 56, 57, 62, 64, 65, 66, 69, 70], "word_mimicri": 11, "word_start": [19, 49], "wordnet": [1, 61], "words_in_lin": 19, "work": [0, 47, 50, 55, 61, 62], "world": 55, "worri": 62, "would": [1, 29, 31, 34, 35, 36, 37, 42, 50, 54, 62], "wouldn": [31, 36], "wow": 50, "wp": 13, "write": [2, 29, 60], "www": [12, 13, 14, 18, 41, 64], "x": [0, 1, 2, 4, 46, 68], "xinlan": 62, "yashveer": 62, "ye": 19, "yeah": [31, 36], "yeoman": [14, 18, 42, 49], "yesno_quest": [32, 49, 54], "yet": 48, "ylatau": 12, "you": [0, 1, 2, 11, 24, 29, 31, 36, 37, 43, 47, 50, 59, 61, 62, 69], "your": [0, 29, 31, 32, 36, 37, 50, 59, 61, 62], "yourself": [31, 36, 50], "yuluan": 62, "yup": [31, 36], "yuxuan": 62, "z": [12, 39, 49, 51, 64, 73], "zero": [13, 52], "zhang": 62, "zheng": 62, "zhong": 62, "zhou": 62, "zscore": 41, "zscore_chat": 41, "zscore_chats_and_convers": 69, "zscore_convers": 41, "\u00bc": 47, "\u03c4": 55}, "titles": ["The Basics", "Worked Example", "feature_builder module", "basic_features module", "burstiness module", "certainty module", "discursive_diversity module", "fflow module", "get_all_DD_features module", "get_user_network module", "hedge module", "Features: Technical Documentation", "info_exchange_zscore module", "information_diversity module", "lexical_features_v2 module", "named_entity_recognition_features module", "other_lexical_features module", "politeness_features module", "politeness_v2 module", "politeness_v2_helper module", "question_num module", "readability module", "reddit_tags module", "temporal_features module", "textblob_sentiment_analysis module", "turn_taking_features module", "variance_in_DD module", "within_person_discursive_range module", "word_mimicry module", "FEATURE NAME", "Certainty", "Content Word Accommodation", "Conversational Repair", "Dale-Chall Score", "Discursive Diversity", "Forward Flow", "Function Word Accommodation", "Gini Coefficient", "Hedge", "Features: Conceptual Documentation", "Information Diversity", "Information Exchange", "Linguistic Inquiry and Word Count (LIWC) and Other Lexicons", "Message Length", "Message Quantity", "Mimicry (BERT)", "Moving Mimicry", "Named Entity Recognition", "Online Discussion Tags", "Politeness/Receptiveness Markers", "Politeness Strategies", "Sentiment (RoBERTa)", "Positivity Z-Score", "Proportion of First Person Pronouns", "Question (Naive)", "Team Burstiness", "Textblob Polarity", "Textblob Subjectivity", "Time Difference", "Turn Taking Index", "Word Type-Token Ratio", "The Team Communication Toolkit", "Introduction", "assign_chunk_nums module", "calculate_chat_level_features module", "calculate_conversation_level_features module", "calculate_user_level_features module", "check_embeddings module", "gini_coefficient module", "Utilities", "preload_word_lists module", "preprocess module", "summarize_features module", "zscore_chats_and_conversation module"], "titleterms": {"A": 0, "One": 0, "The": [0, 61, 62], "accommod": [31, 36], "addit": 1, "advanc": 1, "assign_chunk_num": 63, "assumpt": 0, "basic": [0, 1, 29, 30, 31, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59, 60], "basic_featur": 3, "bert": 45, "bursti": [4, 55], "calculate_chat_level_featur": 64, "calculate_conversation_level_featur": 65, "calculate_user_level_featur": 66, "caveat": [29, 30, 31, 33, 34, 35, 36, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59], "certainti": [5, 30], "chall": 33, "chat": [11, 39], "check_embed": 67, "citat": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "class": 69, "code": [0, 1], "coeffici": 37, "column": 1, "commun": 61, "conceptu": 39, "configur": 1, "consider": 1, "content": [31, 61], "convers": [11, 32, 39, 62, 69], "count": [42, 59], "customiz": 0, "dale": 33, "data": 1, "demo": [0, 1], "differ": 58, "discurs": 34, "discursive_divers": 6, "discuss": 48, "divers": [34, 40], "document": [11, 39, 62], "driver": 69, "entiti": 47, "environ": [1, 61], "exampl": [1, 41, 47], "exchang": 41, "featur": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 69], "feature_build": 2, "featurebuild": [1, 62], "fflow": 7, "file": [30, 34, 35, 45, 46, 47, 51], "first": 53, "flow": 35, "forward": 35, "function": [0, 36], "gener": 62, "get": [1, 61, 62], "get_all_dd_featur": 8, "get_user_network": 9, "gini": 37, "gini_coeffici": 68, "hedg": [10, 38], "high": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "implement": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "import": [1, 61], "index": 59, "indic": 61, "info_exchange_zscor": 12, "inform": [40, 41], "information_divers": 13, "input": [1, 34], "inquiri": 42, "interpret": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "introduct": 62, "intuit": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "kei": 0, "length": 43, "level": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 69], "lexical_features_v2": 14, "lexicon": 42, "light": 0, "linguist": 42, "liwc": 42, "marker": 49, "messag": [43, 44], "mimicri": [45, 46], "modul": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "motiv": 62, "move": 46, "naiv": 54, "name": [29, 47], "named_entity_recognition_featur": 15, "note": [29, 30, 31, 33, 34, 35, 36, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59], "onlin": 48, "other": [42, 69], "other_lexical_featur": 16, "ouput": 34, "our": 62, "output": [30, 35, 45, 46, 47, 51], "packag": [0, 1, 61], "paramet": 0, "person": 53, "pip": [1, 61], "polar": 56, "polit": [49, 50], "politeness_featur": 17, "politeness_v2": 18, "politeness_v2_help": 19, "posit": 52, "preload_word_list": 70, "preprocess": 71, "pronoun": 53, "proport": 53, "quantiti": 44, "question": 54, "question_num": 20, "ratio": 60, "readabl": 21, "recept": 49, "recognit": 47, "recommend": [1, 61], "reddit_tag": 22, "relat": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "repair": 32, "roberta": 51, "run": 1, "sampl": [0, 1], "score": [33, 41, 52], "sentiment": 51, "speaker": [11, 59, 62, 69], "start": [1, 61, 62], "strategi": 50, "subject": 57, "summarize_featur": 72, "tabl": 61, "tag": 48, "take": 59, "team": [55, 61, 62], "technic": 11, "temporal_featur": 23, "textblob": [56, 57], "textblob_sentiment_analysi": 24, "time": 58, "token": 60, "toolkit": 61, "touch": 0, "train": 47, "troubleshoot": [1, 61], "turn": 59, "turn_taking_featur": 25, "type": 60, "us": 61, "user": 11, "util": 69, "utter": [11, 39, 62, 69], "variance_in_dd": 26, "virtual": [1, 61], "walkthrough": 1, "within_person_discursive_rang": 27, "word": [31, 36, 42, 60], "word_mimicri": 28, "work": 1, "your": 1, "z": [41, 52], "zscore_chats_and_convers": 73}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A Light-Touch, One-Function Package": [[0, "a-light-touch-one-function-package"]], "Additional FeatureBuilder Considerations": [[1, "additional-featurebuilder-considerations"]], "Advanced Configuration Columns": [[1, "advanced-configuration-columns"]], "Basic Input Columns": [[1, "basic-input-columns"]], "Certainty": [[30, null]], "Citation": [[29, "citation"], [30, "citation"], [31, "citation"], [32, "citation"], [33, "citation"], [34, "citation"], [35, "citation"], [36, "citation"], [37, "citation"], [38, "citation"], [40, "citation"], [41, "citation"], [42, "citation"], [43, "citation"], [44, "citation"], [45, "citation"], [46, "citation"], [47, "citation"], [48, "citation"], [49, "citation"], [50, "citation"], [51, "citation"], [52, "citation"], [53, "citation"], [54, "citation"], [55, "citation"], [56, "citation"], [57, "citation"], [58, "citation"], [59, "citation"], [60, "citation"]], "Configuring the FeatureBuilder": [[1, "configuring-the-featurebuilder"]], "Content Word Accommodation": [[31, null]], "Contents:": [[61, null]], "Conversation-Level Features": [[11, "conversation-level-features"], [39, "conversation-level-features"]], "Conversational Repair": [[32, null]], "Customizable Parameters": [[0, "customizable-parameters"]], "Dale-Chall Score": [[33, null]], "Demo / Sample Code": [[0, "demo-sample-code"], [1, "demo-sample-code"]], "Discursive Diversity": [[34, null]], "Example:": [[41, "example"]], "FEATURE NAME": [[29, null]], "Feature Documentation": [[62, "feature-documentation"]], "Features: Conceptual Documentation": [[39, null]], "Features: Technical Documentation": [[11, null]], "Forward Flow": [[35, null]], "Function Word Accommodation": [[36, null]], "Generating Features: Utterance-, Speaker-, and Conversation-Level": [[62, "generating-features-utterance-speaker-and-conversation-level"]], "Getting Started": [[1, "getting-started"], [61, "getting-started"], [62, "getting-started"]], "Gini Coefficient": [[37, null]], "Hedge": [[38, null]], "High*Level Intuition": [[54, "high-level-intuition"]], "High-Level Intuition": [[29, "high-level-intuition"], [30, "high-level-intuition"], [31, "high-level-intuition"], [32, "high-level-intuition"], [33, "high-level-intuition"], [34, "high-level-intuition"], [35, "high-level-intuition"], [36, "high-level-intuition"], [37, "high-level-intuition"], [38, "high-level-intuition"], [40, "high-level-intuition"], [41, "high-level-intuition"], [42, "high-level-intuition"], [43, "high-level-intuition"], [44, "high-level-intuition"], [45, "high-level-intuition"], [46, "high-level-intuition"], [47, "high-level-intuition"], [48, "high-level-intuition"], [49, "high-level-intuition"], [50, "high-level-intuition"], [51, "high-level-intuition"], [52, "high-level-intuition"], [53, "high-level-intuition"], [55, "high-level-intuition"], [56, "high-level-intuition"], [57, "high-level-intuition"], [58, "high-level-intuition"], [59, "high-level-intuition"], [60, "high-level-intuition"]], "Implementation": [[32, "implementation"], [42, "implementation"], [52, "implementation"], [54, "implementation"]], "Implementation Basics": [[29, "implementation-basics"], [30, "implementation-basics"], [31, "implementation-basics"], [33, "implementation-basics"], [34, "implementation-basics"], [35, "implementation-basics"], [36, "implementation-basics"], [37, "implementation-basics"], [38, "implementation-basics"], [40, "implementation-basics"], [41, "implementation-basics"], [43, "implementation-basics"], [44, "implementation-basics"], [45, "implementation-basics"], [46, "implementation-basics"], [47, "implementation-basics"], [48, "implementation-basics"], [49, "implementation-basics"], [50, "implementation-basics"], [51, "implementation-basics"], [53, "implementation-basics"], [55, "implementation-basics"], [56, "implementation-basics"], [57, "implementation-basics"], [58, "implementation-basics"], [59, "implementation-basics"], [60, "implementation-basics"]], "Implementation Notes/Caveats": [[29, "implementation-notes-caveats"], [30, "implementation-notes-caveats"], [31, "implementation-notes-caveats"], [33, "implementation-notes-caveats"], [34, "implementation-notes-caveats"], [35, "implementation-notes-caveats"], [36, "implementation-notes-caveats"], [38, "implementation-notes-caveats"], [40, "implementation-notes-caveats"], [41, "implementation-notes-caveats"], [43, "implementation-notes-caveats"], [44, "implementation-notes-caveats"], [45, "implementation-notes-caveats"], [46, "implementation-notes-caveats"], [47, "implementation-notes-caveats"], [48, "implementation-notes-caveats"], [49, "implementation-notes-caveats"], [50, "implementation-notes-caveats"], [51, "implementation-notes-caveats"], [53, "implementation-notes-caveats"], [55, "implementation-notes-caveats"], [56, "implementation-notes-caveats"], [57, "implementation-notes-caveats"], [58, "implementation-notes-caveats"], [59, "implementation-notes-caveats"]], "Import Recommendations: Virtual Environment and Pip": [[1, "import-recommendations-virtual-environment-and-pip"], [61, "import-recommendations-virtual-environment-and-pip"]], "Importing the Package": [[1, "importing-the-package"]], "Indices and Tables": [[61, "indices-and-tables"]], "Information Diversity": [[40, null]], "Information Exchange": [[41, null]], "Input File": [[34, "id2"]], "Interpretation:": [[41, "interpretation"]], "Interpreting the Feature": [[29, "interpreting-the-feature"], [30, "interpreting-the-feature"], [31, "interpreting-the-feature"], [32, "interpreting-the-feature"], [33, "interpreting-the-feature"], [34, "interpreting-the-feature"], [35, "interpreting-the-feature"], [36, "interpreting-the-feature"], [37, "interpreting-the-feature"], [38, "interpreting-the-feature"], [40, "interpreting-the-feature"], [41, "interpreting-the-feature"], [42, "interpreting-the-feature"], [43, "interpreting-the-feature"], [44, "interpreting-the-feature"], [45, "interpreting-the-feature"], [46, "interpreting-the-feature"], [47, "interpreting-the-feature"], [48, "interpreting-the-feature"], [49, "interpreting-the-feature"], [50, "interpreting-the-feature"], [51, "interpreting-the-feature"], [52, "interpreting-the-feature"], [53, "interpreting-the-feature"], [54, "interpreting-the-feature"], [55, "interpreting-the-feature"], [56, "interpreting-the-feature"], [57, "interpreting-the-feature"], [58, "interpreting-the-feature"], [59, "interpreting-the-feature"], [60, "interpreting-the-feature"]], "Introduction": [[62, null]], "Key Assumptions and Parameters": [[0, "key-assumptions-and-parameters"]], "Linguistic Inquiry and Word Count (LIWC) and Other Lexicons": [[42, null]], "Message Length": [[43, null]], "Message Quantity": [[44, null]], "Mimicry (BERT)": [[45, null]], "Motivation": [[62, "motivation"]], "Moving Mimicry": [[46, null]], "Named Entity Recognition": [[47, null]], "Named Entity Training Examples": [[47, "id2"]], "Online Discussion Tags": [[48, null]], "Other Utilities": [[69, "other-utilities"]], "Ouput File": [[34, "id3"]], "Our Team": [[62, "our-team"]], "Output File": [[30, "id2"], [35, "id2"], [45, "id2"], [46, "id2"], [47, "id3"], [51, "id1"]], "Package Assumptions": [[0, "package-assumptions"]], "Politeness Strategies": [[50, null]], "Politeness/Receptiveness Markers": [[49, null]], "Positivity Z-Score": [[52, null]], "Proportion of First Person Pronouns": [[53, null]], "Question (Naive)": [[54, null]], "Related Features": [[29, "related-features"], [30, "related-features"], [31, "related-features"], [32, "related-features"], [33, "related-features"], [34, "related-features"], [35, "related-features"], [36, "related-features"], [37, "related-features"], [38, "related-features"], [40, "related-features"], [41, "related-features"], [42, "related-features"], [43, "related-features"], [44, "related-features"], [45, "related-features"], [46, "related-features"], [47, "related-features"], [48, "related-features"], [49, "related-features"], [50, "related-features"], [51, "related-features"], [52, "related-features"], [53, "related-features"], [54, "related-features"], [55, "related-features"], [56, "related-features"], [57, "related-features"], [58, "related-features"], [59, "related-features"], [60, "related-features"]], "Sentiment (RoBERTa)": [[51, null]], "Speaker Turn Counts": [[59, "id2"]], "Speaker- (User) Level Features": [[11, "speaker-user-level-features"]], "Team Burstiness": [[55, null]], "Textblob Polarity": [[56, null]], "Textblob Subjectivity": [[57, null]], "The Basics": [[0, null]], "The FeatureBuilder": [[62, "the-featurebuilder"]], "The Team Communication Toolkit": [[61, null]], "Time Difference": [[58, null]], "Troubleshooting": [[1, "troubleshooting"], [61, "troubleshooting"]], "Turn Taking Index": [[59, null]], "Using the Package": [[61, "using-the-package"]], "Utilities": [[69, null]], "Utterance- (Chat) Level Features": [[11, "utterance-chat-level-features"], [39, "utterance-chat-level-features"]], "Walkthrough: Running the FeatureBuilder on Your Data": [[1, "walkthrough-running-the-featurebuilder-on-your-data"]], "Word Type-Token Ratio": [[60, null]], "Worked Example": [[1, null]], "assign_chunk_nums module": [[63, null]], "basic_features module": [[3, null]], "burstiness module": [[4, null]], "calculate_chat_level_features module": [[64, null]], "calculate_conversation_level_features module": [[65, null]], "calculate_user_level_features module": [[66, null]], "certainty module": [[5, null]], "check_embeddings module": [[67, null]], "discursive_diversity module": [[6, null]], "feature_builder module": [[2, null]], "fflow module": [[7, null]], "get_all_DD_features module": [[8, null]], "get_user_network module": [[9, null]], "gini_coefficient module": [[68, null]], "hedge module": [[10, null]], "info_exchange_zscore module": [[12, null]], "information_diversity module": [[13, null]], "lexical_features_v2 module": [[14, null]], "named_entity_recognition_features module": [[15, null]], "other_lexical_features module": [[16, null]], "politeness_features module": [[17, null]], "politeness_v2 module": [[18, null]], "politeness_v2_helper module": [[19, null]], "preload_word_lists module": [[70, null]], "preprocess module": [[71, null]], "question_num module": [[20, null]], "readability module": [[21, null]], "reddit_tags module": [[22, null]], "summarize_features module": [[72, null]], "temporal_features module": [[23, null]], "textblob_sentiment_analysis module": [[24, null]], "turn_taking_features module": [[25, null]], "variance_in_DD module": [[26, null]], "within_person_discursive_range module": [[27, null]], "word_mimicry module": [[28, null]], "z-scores:": [[41, "z-scores"]], "zscore_chats_and_conversation module": [[73, null]], "\u201cDriver\u201d Classes: Utterance-, Conversation-, and Speaker-Level Features": [[69, "driver-classes-utterance-conversation-and-speaker-level-features"]]}, "docnames": ["basics", "examples", "feature_builder", "features/basic_features", "features/burstiness", "features/certainty", "features/discursive_diversity", "features/fflow", "features/get_all_DD_features", "features/get_user_network", "features/hedge", "features/index", "features/info_exchange_zscore", "features/information_diversity", "features/lexical_features_v2", "features/named_entity_recognition_features", "features/other_lexical_features", "features/politeness_features", "features/politeness_v2", "features/politeness_v2_helper", "features/question_num", "features/readability", "features/reddit_tags", "features/temporal_features", "features/textblob_sentiment_analysis", "features/turn_taking_features", "features/variance_in_DD", "features/within_person_discursive_range", "features/word_mimicry", "features_conceptual/TEMPLATE", "features_conceptual/certainty", "features_conceptual/content_word_accommodation", "features_conceptual/conversational_repair", "features_conceptual/dale_chall_score", "features_conceptual/discursive_diversity", "features_conceptual/forward_flow", "features_conceptual/function_word_accommodation", "features_conceptual/gini_coefficient", "features_conceptual/hedge", "features_conceptual/index", "features_conceptual/information_diversity", "features_conceptual/information_exchange", "features_conceptual/liwc", "features_conceptual/message_length", "features_conceptual/message_quantity", "features_conceptual/mimicry_bert", "features_conceptual/moving_mimicry", "features_conceptual/named_entity_recognition", "features_conceptual/online_discussions_tags", "features_conceptual/politeness_receptiveness_markers", "features_conceptual/politeness_strategies", "features_conceptual/positivity_bert", "features_conceptual/positivity_z_score", "features_conceptual/proportion_of_first_person_pronouns", "features_conceptual/questions", "features_conceptual/team_burstiness", "features_conceptual/textblob_polarity", "features_conceptual/textblob_subjectivity", "features_conceptual/time_difference", "features_conceptual/turn_taking_index", "features_conceptual/word_ttr", "index", "intro", "utils/assign_chunk_nums", "utils/calculate_chat_level_features", "utils/calculate_conversation_level_features", "utils/calculate_user_level_features", "utils/check_embeddings", "utils/gini_coefficient", "utils/index", "utils/preload_word_lists", "utils/preprocess", "utils/summarize_features", "utils/zscore_chats_and_conversation"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["basics.rst", "examples.rst", "feature_builder.rst", "features/basic_features.rst", "features/burstiness.rst", "features/certainty.rst", "features/discursive_diversity.rst", "features/fflow.rst", "features/get_all_DD_features.rst", "features/get_user_network.rst", "features/hedge.rst", "features/index.rst", "features/info_exchange_zscore.rst", "features/information_diversity.rst", "features/lexical_features_v2.rst", "features/named_entity_recognition_features.rst", "features/other_lexical_features.rst", "features/politeness_features.rst", "features/politeness_v2.rst", "features/politeness_v2_helper.rst", "features/question_num.rst", "features/readability.rst", "features/reddit_tags.rst", "features/temporal_features.rst", "features/textblob_sentiment_analysis.rst", "features/turn_taking_features.rst", "features/variance_in_DD.rst", "features/within_person_discursive_range.rst", "features/word_mimicry.rst", "features_conceptual/TEMPLATE.rst", "features_conceptual/certainty.rst", "features_conceptual/content_word_accommodation.rst", "features_conceptual/conversational_repair.rst", "features_conceptual/dale_chall_score.rst", "features_conceptual/discursive_diversity.rst", "features_conceptual/forward_flow.rst", "features_conceptual/function_word_accommodation.rst", "features_conceptual/gini_coefficient.rst", "features_conceptual/hedge.rst", "features_conceptual/index.rst", "features_conceptual/information_diversity.rst", "features_conceptual/information_exchange.rst", "features_conceptual/liwc.rst", "features_conceptual/message_length.rst", "features_conceptual/message_quantity.rst", "features_conceptual/mimicry_bert.rst", "features_conceptual/moving_mimicry.rst", "features_conceptual/named_entity_recognition.rst", "features_conceptual/online_discussions_tags.rst", "features_conceptual/politeness_receptiveness_markers.rst", "features_conceptual/politeness_strategies.rst", "features_conceptual/positivity_bert.rst", "features_conceptual/positivity_z_score.rst", "features_conceptual/proportion_of_first_person_pronouns.rst", "features_conceptual/questions.rst", "features_conceptual/team_burstiness.rst", "features_conceptual/textblob_polarity.rst", "features_conceptual/textblob_subjectivity.rst", "features_conceptual/time_difference.rst", "features_conceptual/turn_taking_index.rst", "features_conceptual/word_ttr.rst", "index.rst", "intro.rst", "utils/assign_chunk_nums.rst", "utils/calculate_chat_level_features.rst", "utils/calculate_conversation_level_features.rst", "utils/calculate_user_level_features.rst", "utils/check_embeddings.rst", "utils/gini_coefficient.rst", "utils/index.rst", "utils/preload_word_lists.rst", "utils/preprocess.rst", "utils/summarize_features.rst", "utils/zscore_chats_and_conversation.rst"], "indexentries": {"adverb_limiter() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.adverb_limiter", false]], "assert_key_columns_present() (in module utils.preprocess)": [[71, "utils.preprocess.assert_key_columns_present", false]], "assign_chunk_nums() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.assign_chunk_nums", false]], "bare_command() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.bare_command", false]], "built_spacy_ner() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.built_spacy_ner", false]], "burstiness() (in module features.burstiness)": [[4, "features.burstiness.burstiness", false]], "calculate_chat_level_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_chat_level_features", false]], "calculate_conversation_level_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_conversation_level_features", false]], "calculate_hedge_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_hedge_features", false]], "calculate_id_score() (in module features.information_diversity)": [[13, "features.information_diversity.calculate_ID_score", false]], "calculate_info_diversity() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_info_diversity", false]], "calculate_named_entities() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.calculate_named_entities", false]], "calculate_num_question_naive() (in module features.question_num)": [[20, "features.question_num.calculate_num_question_naive", false]], "calculate_politeness_sentiment() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_politeness_sentiment", false]], "calculate_politeness_v2() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_politeness_v2", false]], "calculate_team_burstiness() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.calculate_team_burstiness", false]], "calculate_textblob_sentiment() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_textblob_sentiment", false]], "calculate_user_level_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.calculate_user_level_features", false]], "calculate_vector_word_mimicry() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_vector_word_mimicry", false]], "calculate_word_mimicry() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.calculate_word_mimicry", false]], "chat_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.chat_level_features", false]], "chatlevelfeaturescalculator (class in utils.calculate_chat_level_features)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator", false]], "check_embeddings() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.check_embeddings", false]], "classify_ntri() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.classify_NTRI", false]], "classify_text_dalechall() (in module features.readability)": [[21, "features.readability.classify_text_dalechall", false]], "clean_text() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.clean_text", false]], "coerce_to_date_or_number() (in module features.temporal_features)": [[23, "features.temporal_features.coerce_to_date_or_number", false]], "commit_data() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.commit_data", false]], "compress() (in module utils.preprocess)": [[71, "utils.preprocess.compress", false]], "compute_frequency() (in module features.word_mimicry)": [[28, "features.word_mimicry.compute_frequency", false]], "computetf() (in module features.word_mimicry)": [[28, "features.word_mimicry.computeTF", false]], "concat_bert_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.concat_bert_features", false]], "conjection_seperator() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.conjection_seperator", false]], "content_mimicry_score() (in module features.word_mimicry)": [[28, "features.word_mimicry.Content_mimicry_score", false]], "conv_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.conv_level_features", false]], "conv_to_float_arr() (in module features.get_all_dd_features)": [[8, "features.get_all_DD_features.conv_to_float_arr", false]], "conversationlevelfeaturescalculator (class in utils.calculate_conversation_level_features)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator", false]], "count_all_caps() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_all_caps", false]], "count_bullet_points() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_bullet_points", false]], "count_characters() (in module features.basic_features)": [[3, "features.basic_features.count_characters", false]], "count_difficult_words() (in module features.readability)": [[21, "features.readability.count_difficult_words", false]], "count_ellipses() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_ellipses", false]], "count_emojis() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_emojis", false]], "count_emphasis() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_emphasis", false]], "count_line_breaks() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_line_breaks", false]], "count_links() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_links", false]], "count_matches() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.count_matches", false]], "count_messages() (in module features.basic_features)": [[3, "features.basic_features.count_messages", false]], "count_numbering() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_numbering", false]], "count_parentheses() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_parentheses", false]], "count_quotes() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_quotes", false]], "count_responding_to_someone() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_responding_to_someone", false]], "count_spacy_matches() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.count_spacy_matches", false]], "count_syllables() (in module features.readability)": [[21, "features.readability.count_syllables", false]], "count_turn_taking_index() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.count_turn_taking_index", false]], "count_turns() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.count_turns", false]], "count_user_references() (in module features.reddit_tags)": [[22, "features.reddit_tags.count_user_references", false]], "count_words() (in module features.basic_features)": [[3, "features.basic_features.count_words", false]], "create_chunks() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.create_chunks", false]], "create_chunks_messages() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.create_chunks_messages", false]], "create_cumulative_rows() (in module utils.preprocess)": [[71, "utils.preprocess.create_cumulative_rows", false]], "dale_chall_helper() (in module features.readability)": [[21, "features.readability.dale_chall_helper", false]], "feat_counts() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.feat_counts", false]], "feature_builder": [[2, "module-feature_builder", false]], "featurebuilder (class in feature_builder)": [[2, "feature_builder.FeatureBuilder", false]], "features.basic_features": [[3, "module-features.basic_features", false]], "features.burstiness": [[4, "module-features.burstiness", false]], "features.certainty": [[5, "module-features.certainty", false]], "features.discursive_diversity": [[6, "module-features.discursive_diversity", false]], "features.fflow": [[7, "module-features.fflow", false]], "features.get_all_dd_features": [[8, "module-features.get_all_DD_features", false]], "features.get_user_network": [[9, "module-features.get_user_network", false]], "features.hedge": [[10, "module-features.hedge", false]], "features.info_exchange_zscore": [[12, "module-features.info_exchange_zscore", false]], "features.information_diversity": [[13, "module-features.information_diversity", false]], "features.lexical_features_v2": [[14, "module-features.lexical_features_v2", false]], "features.named_entity_recognition_features": [[15, "module-features.named_entity_recognition_features", false]], "features.other_lexical_features": [[16, "module-features.other_lexical_features", false]], "features.politeness_features": [[17, "module-features.politeness_features", false]], "features.politeness_v2": [[18, "module-features.politeness_v2", false]], "features.politeness_v2_helper": [[19, "module-features.politeness_v2_helper", false]], "features.question_num": [[20, "module-features.question_num", false]], "features.readability": [[21, "module-features.readability", false]], "features.reddit_tags": [[22, "module-features.reddit_tags", false]], "features.temporal_features": [[23, "module-features.temporal_features", false]], "features.textblob_sentiment_analysis": [[24, "module-features.textblob_sentiment_analysis", false]], "features.turn_taking_features": [[25, "module-features.turn_taking_features", false]], "features.variance_in_dd": [[26, "module-features.variance_in_DD", false]], "features.within_person_discursive_range": [[27, "module-features.within_person_discursive_range", false]], "features.word_mimicry": [[28, "module-features.word_mimicry", false]], "featurize() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.featurize", false]], "function_mimicry_score() (in module features.word_mimicry)": [[28, "features.word_mimicry.function_mimicry_score", false]], "generate_bert() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_bert", false]], "generate_certainty_pkl() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_certainty_pkl", false]], "generate_lexicon_pkl() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_lexicon_pkl", false]], "generate_vect() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.generate_vect", false]], "get_average() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_average", false]], "get_centroids() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_centroids", false]], "get_certainty() (in module features.certainty)": [[5, "features.certainty.get_certainty", false]], "get_certainty_score() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_certainty_score", false]], "get_content_words_in_message() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_content_words_in_message", false]], "get_conversation_level_aggregates() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_conversation_level_aggregates", false]], "get_cosine_similarity() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_cosine_similarity", false]], "get_dale_chall_easy_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_dale_chall_easy_words", false]], "get_dale_chall_score_and_classfication() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_dale_chall_score_and_classfication", false]], "get_dd() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_DD", false]], "get_dd_features() (in module features.get_all_dd_features)": [[8, "features.get_all_DD_features.get_DD_features", false]], "get_dep_pairs() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.get_dep_pairs", false]], "get_dep_pairs_noneg() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.get_dep_pairs_noneg", false]], "get_discursive_diversity_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_discursive_diversity_features", false]], "get_first_pct_of_chat() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.get_first_pct_of_chat", false]], "get_first_person_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_first_person_words", false]], "get_forward_flow() (in module features.fflow)": [[7, "features.fflow.get_forward_flow", false]], "get_forward_flow() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_forward_flow", false]], "get_function_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_function_words", false]], "get_function_words_in_message() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_function_words_in_message", false]], "get_gini() (in module utils.gini_coefficient)": [[68, "utils.gini_coefficient.get_gini", false]], "get_gini_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_gini_features", false]], "get_info_diversity() (in module features.information_diversity)": [[13, "features.information_diversity.get_info_diversity", false]], "get_info_exchange_wordcount() (in module features.info_exchange_zscore)": [[12, "features.info_exchange_zscore.get_info_exchange_wordcount", false]], "get_liwc_rate() (in module features.lexical_features_v2)": [[14, "features.lexical_features_v2.get_liwc_rate", false]], "get_max() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_max", false]], "get_mimicry_bert() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_mimicry_bert", false]], "get_min() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_min", false]], "get_moving_mimicry() (in module features.word_mimicry)": [[28, "features.word_mimicry.get_moving_mimicry", false]], "get_named_entity() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_named_entity", false]], "get_nan_vector() (in module features.within_person_discursive_range)": [[27, "features.within_person_discursive_range.get_nan_vector", false]], "get_polarity_score() (in module features.textblob_sentiment_analysis)": [[24, "features.textblob_sentiment_analysis.get_polarity_score", false]], "get_politeness_strategies() (in module features.politeness_features)": [[17, "features.politeness_features.get_politeness_strategies", false]], "get_politeness_v2() (in module features.politeness_v2)": [[18, "features.politeness_v2.get_politeness_v2", false]], "get_proportion_first_pronouns() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.get_proportion_first_pronouns", false]], "get_question_words() (in module utils.preload_word_lists)": [[70, "utils.preload_word_lists.get_question_words", false]], "get_reddit_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_reddit_features", false]], "get_sentiment() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.get_sentiment", false]], "get_stdev() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_stdev", false]], "get_subjectivity_score() (in module features.textblob_sentiment_analysis)": [[24, "features.textblob_sentiment_analysis.get_subjectivity_score", false]], "get_sum() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_sum", false]], "get_team_burstiness() (in module features.burstiness)": [[4, "features.burstiness.get_team_burstiness", false]], "get_temporal_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.get_temporal_features", false]], "get_time_diff() (in module features.temporal_features)": [[23, "features.temporal_features.get_time_diff", false]], "get_time_diff_startend() (in module features.temporal_features)": [[23, "features.temporal_features.get_time_diff_startend", false]], "get_turn() (in module features.turn_taking_features)": [[25, "features.turn_taking_features.get_turn", false]], "get_turn_id() (in module utils.preprocess)": [[71, "utils.preprocess.get_turn_id", false]], "get_turn_taking_features() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_turn_taking_features", false]], "get_unique_pairwise_combos() (in module features.discursive_diversity)": [[6, "features.discursive_diversity.get_unique_pairwise_combos", false]], "get_user_average_dataframe() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_user_average_dataframe", false]], "get_user_level_aggregates() (utils.calculate_conversation_level_features.conversationlevelfeaturescalculator method)": [[65, "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator.get_user_level_aggregates", false]], "get_user_level_averaged_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_averaged_features", false]], "get_user_level_summary_statistics_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_summary_statistics_features", false]], "get_user_level_summed_features() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_level_summed_features", false]], "get_user_network() (in module features.get_user_network)": [[9, "features.get_user_network.get_user_network", false]], "get_user_network() (utils.calculate_user_level_features.userlevelfeaturescalculator method)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator.get_user_network", false]], "get_user_sum_dataframe() (in module utils.summarize_features)": [[72, "utils.summarize_features.get_user_sum_dataframe", false]], "get_variance_in_dd() (in module features.variance_in_dd)": [[26, "features.variance_in_DD.get_variance_in_DD", false]], "get_within_person_disc_range() (in module features.within_person_discursive_range)": [[27, "features.within_person_discursive_range.get_within_person_disc_range", false]], "get_word_ttr() (in module features.other_lexical_features)": [[16, "features.other_lexical_features.get_word_TTR", false]], "get_zscore_across_all_chats() (in module utils.zscore_chats_and_conversation)": [[73, "utils.zscore_chats_and_conversation.get_zscore_across_all_chats", false]], "get_zscore_across_all_conversations() (in module utils.zscore_chats_and_conversation)": [[73, "utils.zscore_chats_and_conversation.get_zscore_across_all_conversations", false]], "gini_coefficient() (in module utils.gini_coefficient)": [[68, "utils.gini_coefficient.gini_coefficient", false]], "info_diversity() (in module features.information_diversity)": [[13, "features.information_diversity.info_diversity", false]], "info_exchange() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.info_exchange", false]], "is_hedged_sentence_1() (in module features.hedge)": [[10, "features.hedge.is_hedged_sentence_1", false]], "lexical_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.lexical_features", false]], "liwc_features() (in module features.lexical_features_v2)": [[14, "features.lexical_features_v2.liwc_features", false]], "load_saved_data() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_saved_data", false]], "load_to_dict() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_to_dict", false]], "load_to_lists() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.load_to_lists", false]], "merge_conv_data_with_original() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.merge_conv_data_with_original", false]], "mimic_words() (in module features.word_mimicry)": [[28, "features.word_mimicry.mimic_words", false]], "module": [[2, "module-feature_builder", false], [3, "module-features.basic_features", false], [4, "module-features.burstiness", false], [5, "module-features.certainty", false], [6, "module-features.discursive_diversity", false], [7, "module-features.fflow", false], [8, "module-features.get_all_DD_features", false], [9, "module-features.get_user_network", false], [10, "module-features.hedge", false], [12, "module-features.info_exchange_zscore", false], [13, "module-features.information_diversity", false], [14, "module-features.lexical_features_v2", false], [15, "module-features.named_entity_recognition_features", false], [16, "module-features.other_lexical_features", false], [17, "module-features.politeness_features", false], [18, "module-features.politeness_v2", false], [19, "module-features.politeness_v2_helper", false], [20, "module-features.question_num", false], [21, "module-features.readability", false], [22, "module-features.reddit_tags", false], [23, "module-features.temporal_features", false], [24, "module-features.textblob_sentiment_analysis", false], [25, "module-features.turn_taking_features", false], [26, "module-features.variance_in_DD", false], [27, "module-features.within_person_discursive_range", false], [28, "module-features.word_mimicry", false], [63, "module-utils.assign_chunk_nums", false], [64, "module-utils.calculate_chat_level_features", false], [65, "module-utils.calculate_conversation_level_features", false], [66, "module-utils.calculate_user_level_features", false], [67, "module-utils.check_embeddings", false], [68, "module-utils.gini_coefficient", false], [70, "module-utils.preload_word_lists", false], [71, "module-utils.preprocess", false], [72, "module-utils.summarize_features", false], [73, "module-utils.zscore_chats_and_conversation", false]], "named_entities() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.named_entities", false]], "num_named_entity() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.num_named_entity", false]], "other_lexical_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.other_lexical_features", false]], "phrase_split() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.phrase_split", false]], "positivity_zscore() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.positivity_zscore", false]], "prep_simple() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.prep_simple", false]], "prep_whole() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.prep_whole", false]], "preprocess_chat_data() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.preprocess_chat_data", false]], "preprocess_conversation_columns() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_conversation_columns", false]], "preprocess_naive_turns() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_naive_turns", false]], "preprocess_text() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_text", false]], "preprocess_text_lowercase_but_retain_punctuation() (in module utils.preprocess)": [[71, "utils.preprocess.preprocess_text_lowercase_but_retain_punctuation", false]], "preprocessing() (in module features.information_diversity)": [[13, "features.information_diversity.preprocessing", false]], "punctuation_seperator() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.punctuation_seperator", false]], "question() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.Question", false]], "read_in_lexicons() (in module utils.check_embeddings)": [[67, "utils.check_embeddings.read_in_lexicons", false]], "reduce_chunks() (in module utils.assign_chunk_nums)": [[63, "utils.assign_chunk_nums.reduce_chunks", false]], "remove_active_user() (in module features.get_user_network)": [[9, "features.get_user_network.remove_active_user", false]], "save_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.save_features", false]], "sentence_pad() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentence_pad", false]], "sentence_split() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentence_split", false]], "sentenciser() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.sentenciser", false]], "set_self_conv_data() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.set_self_conv_data", false]], "text_based_features() (utils.calculate_chat_level_features.chatlevelfeaturescalculator method)": [[64, "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator.text_based_features", false]], "token_count() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.token_count", false]], "train_spacy_ner() (in module features.named_entity_recognition_features)": [[15, "features.named_entity_recognition_features.train_spacy_ner", false]], "user_level_features() (feature_builder.featurebuilder method)": [[2, "feature_builder.FeatureBuilder.user_level_features", false]], "userlevelfeaturescalculator (class in utils.calculate_user_level_features)": [[66, "utils.calculate_user_level_features.UserLevelFeaturesCalculator", false]], "utils.assign_chunk_nums": [[63, "module-utils.assign_chunk_nums", false]], "utils.calculate_chat_level_features": [[64, "module-utils.calculate_chat_level_features", false]], "utils.calculate_conversation_level_features": [[65, "module-utils.calculate_conversation_level_features", false]], "utils.calculate_user_level_features": [[66, "module-utils.calculate_user_level_features", false]], "utils.check_embeddings": [[67, "module-utils.check_embeddings", false]], "utils.gini_coefficient": [[68, "module-utils.gini_coefficient", false]], "utils.preload_word_lists": [[70, "module-utils.preload_word_lists", false]], "utils.preprocess": [[71, "module-utils.preprocess", false]], "utils.summarize_features": [[72, "module-utils.summarize_features", false]], "utils.zscore_chats_and_conversation": [[73, "module-utils.zscore_chats_and_conversation", false]], "word_start() (in module features.politeness_v2_helper)": [[19, "features.politeness_v2_helper.word_start", false]]}, "objects": {"": [[2, 0, 0, "-", "feature_builder"]], "feature_builder": [[2, 1, 1, "", "FeatureBuilder"]], "feature_builder.FeatureBuilder": [[2, 2, 1, "", "chat_level_features"], [2, 2, 1, "", "conv_level_features"], [2, 2, 1, "", "featurize"], [2, 2, 1, "", "get_first_pct_of_chat"], [2, 2, 1, "", "merge_conv_data_with_original"], [2, 2, 1, "", "preprocess_chat_data"], [2, 2, 1, "", "save_features"], [2, 2, 1, "", "set_self_conv_data"], [2, 2, 1, "", "user_level_features"]], "features": [[3, 0, 0, "-", "basic_features"], [4, 0, 0, "-", "burstiness"], [5, 0, 0, "-", "certainty"], [6, 0, 0, "-", "discursive_diversity"], [7, 0, 0, "-", "fflow"], [8, 0, 0, "-", "get_all_DD_features"], [9, 0, 0, "-", "get_user_network"], [10, 0, 0, "-", "hedge"], [12, 0, 0, "-", "info_exchange_zscore"], [13, 0, 0, "-", "information_diversity"], [14, 0, 0, "-", "lexical_features_v2"], [15, 0, 0, "-", "named_entity_recognition_features"], [16, 0, 0, "-", "other_lexical_features"], [17, 0, 0, "-", "politeness_features"], [18, 0, 0, "-", "politeness_v2"], [19, 0, 0, "-", "politeness_v2_helper"], [20, 0, 0, "-", "question_num"], [21, 0, 0, "-", "readability"], [22, 0, 0, "-", "reddit_tags"], [23, 0, 0, "-", "temporal_features"], [24, 0, 0, "-", "textblob_sentiment_analysis"], [25, 0, 0, "-", "turn_taking_features"], [26, 0, 0, "-", "variance_in_DD"], [27, 0, 0, "-", "within_person_discursive_range"], [28, 0, 0, "-", "word_mimicry"]], "features.basic_features": [[3, 3, 1, "", "count_characters"], [3, 3, 1, "", "count_messages"], [3, 3, 1, "", "count_words"]], "features.burstiness": [[4, 3, 1, "", "burstiness"], [4, 3, 1, "", "get_team_burstiness"]], "features.certainty": [[5, 3, 1, "", "get_certainty"]], "features.discursive_diversity": [[6, 3, 1, "", "get_DD"], [6, 3, 1, "", "get_cosine_similarity"], [6, 3, 1, "", "get_unique_pairwise_combos"]], "features.fflow": [[7, 3, 1, "", "get_forward_flow"]], "features.get_all_DD_features": [[8, 3, 1, "", "conv_to_float_arr"], [8, 3, 1, "", "get_DD_features"]], "features.get_user_network": [[9, 3, 1, "", "get_user_network"], [9, 3, 1, "", "remove_active_user"]], "features.hedge": [[10, 3, 1, "", "is_hedged_sentence_1"]], "features.info_exchange_zscore": [[12, 3, 1, "", "get_info_exchange_wordcount"]], "features.information_diversity": [[13, 3, 1, "", "calculate_ID_score"], [13, 3, 1, "", "get_info_diversity"], [13, 3, 1, "", "info_diversity"], [13, 3, 1, "", "preprocessing"]], "features.lexical_features_v2": [[14, 3, 1, "", "get_liwc_rate"], [14, 3, 1, "", "liwc_features"]], "features.named_entity_recognition_features": [[15, 3, 1, "", "built_spacy_ner"], [15, 3, 1, "", "calculate_named_entities"], [15, 3, 1, "", "named_entities"], [15, 3, 1, "", "num_named_entity"], [15, 3, 1, "", "train_spacy_ner"]], "features.other_lexical_features": [[16, 3, 1, "", "classify_NTRI"], [16, 3, 1, "", "get_proportion_first_pronouns"], [16, 3, 1, "", "get_word_TTR"]], "features.politeness_features": [[17, 3, 1, "", "get_politeness_strategies"]], "features.politeness_v2": [[18, 3, 1, "", "get_politeness_v2"]], "features.politeness_v2_helper": [[19, 3, 1, "", "Question"], [19, 3, 1, "", "adverb_limiter"], [19, 3, 1, "", "bare_command"], [19, 3, 1, "", "clean_text"], [19, 3, 1, "", "commit_data"], [19, 3, 1, "", "conjection_seperator"], [19, 3, 1, "", "count_matches"], [19, 3, 1, "", "count_spacy_matches"], [19, 3, 1, "", "feat_counts"], [19, 3, 1, "", "get_dep_pairs"], [19, 3, 1, "", "get_dep_pairs_noneg"], [19, 3, 1, "", "load_saved_data"], [19, 3, 1, "", "load_to_dict"], [19, 3, 1, "", "load_to_lists"], [19, 3, 1, "", "phrase_split"], [19, 3, 1, "", "prep_simple"], [19, 3, 1, "", "prep_whole"], [19, 3, 1, "", "punctuation_seperator"], [19, 3, 1, "", "sentence_pad"], [19, 3, 1, "", "sentence_split"], [19, 3, 1, "", "sentenciser"], [19, 3, 1, "", "token_count"], [19, 3, 1, "", "word_start"]], "features.question_num": [[20, 3, 1, "", "calculate_num_question_naive"]], "features.readability": [[21, 3, 1, "", "classify_text_dalechall"], [21, 3, 1, "", "count_difficult_words"], [21, 3, 1, "", "count_syllables"], [21, 3, 1, "", "dale_chall_helper"]], "features.reddit_tags": [[22, 3, 1, "", "count_all_caps"], [22, 3, 1, "", "count_bullet_points"], [22, 3, 1, "", "count_ellipses"], [22, 3, 1, "", "count_emojis"], [22, 3, 1, "", "count_emphasis"], [22, 3, 1, "", "count_line_breaks"], [22, 3, 1, "", "count_links"], [22, 3, 1, "", "count_numbering"], [22, 3, 1, "", "count_parentheses"], [22, 3, 1, "", "count_quotes"], [22, 3, 1, "", "count_responding_to_someone"], [22, 3, 1, "", "count_user_references"]], "features.temporal_features": [[23, 3, 1, "", "coerce_to_date_or_number"], [23, 3, 1, "", "get_time_diff"], [23, 3, 1, "", "get_time_diff_startend"]], "features.textblob_sentiment_analysis": [[24, 3, 1, "", "get_polarity_score"], [24, 3, 1, "", "get_subjectivity_score"]], "features.turn_taking_features": [[25, 3, 1, "", "count_turn_taking_index"], [25, 3, 1, "", "count_turns"], [25, 3, 1, "", "get_turn"]], "features.variance_in_DD": [[26, 3, 1, "", "get_variance_in_DD"]], "features.within_person_discursive_range": [[27, 3, 1, "", "get_nan_vector"], [27, 3, 1, "", "get_within_person_disc_range"]], "features.word_mimicry": [[28, 3, 1, "", "Content_mimicry_score"], [28, 3, 1, "", "computeTF"], [28, 3, 1, "", "compute_frequency"], [28, 3, 1, "", "function_mimicry_score"], [28, 3, 1, "", "get_content_words_in_message"], [28, 3, 1, "", "get_function_words_in_message"], [28, 3, 1, "", "get_mimicry_bert"], [28, 3, 1, "", "get_moving_mimicry"], [28, 3, 1, "", "mimic_words"]], "utils": [[63, 0, 0, "-", "assign_chunk_nums"], [64, 0, 0, "-", "calculate_chat_level_features"], [65, 0, 0, "-", "calculate_conversation_level_features"], [66, 0, 0, "-", "calculate_user_level_features"], [67, 0, 0, "-", "check_embeddings"], [68, 0, 0, "-", "gini_coefficient"], [70, 0, 0, "-", "preload_word_lists"], [71, 0, 0, "-", "preprocess"], [72, 0, 0, "-", "summarize_features"], [73, 0, 0, "-", "zscore_chats_and_conversation"]], "utils.assign_chunk_nums": [[63, 3, 1, "", "assign_chunk_nums"], [63, 3, 1, "", "create_chunks"], [63, 3, 1, "", "create_chunks_messages"], [63, 3, 1, "", "reduce_chunks"]], "utils.calculate_chat_level_features": [[64, 1, 1, "", "ChatLevelFeaturesCalculator"]], "utils.calculate_chat_level_features.ChatLevelFeaturesCalculator": [[64, 2, 1, "", "calculate_chat_level_features"], [64, 2, 1, "", "calculate_hedge_features"], [64, 2, 1, "", "calculate_politeness_sentiment"], [64, 2, 1, "", "calculate_politeness_v2"], [64, 2, 1, "", "calculate_textblob_sentiment"], [64, 2, 1, "", "calculate_vector_word_mimicry"], [64, 2, 1, "", "calculate_word_mimicry"], [64, 2, 1, "", "concat_bert_features"], [64, 2, 1, "", "get_certainty_score"], [64, 2, 1, "", "get_dale_chall_score_and_classfication"], [64, 2, 1, "", "get_forward_flow"], [64, 2, 1, "", "get_named_entity"], [64, 2, 1, "", "get_reddit_features"], [64, 2, 1, "", "get_temporal_features"], [64, 2, 1, "", "info_exchange"], [64, 2, 1, "", "lexical_features"], [64, 2, 1, "", "other_lexical_features"], [64, 2, 1, "", "positivity_zscore"], [64, 2, 1, "", "text_based_features"]], "utils.calculate_conversation_level_features": [[65, 1, 1, "", "ConversationLevelFeaturesCalculator"]], "utils.calculate_conversation_level_features.ConversationLevelFeaturesCalculator": [[65, 2, 1, "", "calculate_conversation_level_features"], [65, 2, 1, "", "calculate_info_diversity"], [65, 2, 1, "", "calculate_team_burstiness"], [65, 2, 1, "", "get_conversation_level_aggregates"], [65, 2, 1, "", "get_discursive_diversity_features"], [65, 2, 1, "", "get_gini_features"], [65, 2, 1, "", "get_turn_taking_features"], [65, 2, 1, "", "get_user_level_aggregates"]], "utils.calculate_user_level_features": [[66, 1, 1, "", "UserLevelFeaturesCalculator"]], "utils.calculate_user_level_features.UserLevelFeaturesCalculator": [[66, 2, 1, "", "calculate_user_level_features"], [66, 2, 1, "", "get_centroids"], [66, 2, 1, "", "get_user_level_averaged_features"], [66, 2, 1, "", "get_user_level_summary_statistics_features"], [66, 2, 1, "", "get_user_level_summed_features"], [66, 2, 1, "", "get_user_network"]], "utils.check_embeddings": [[67, 3, 1, "", "check_embeddings"], [67, 3, 1, "", "generate_bert"], [67, 3, 1, "", "generate_certainty_pkl"], [67, 3, 1, "", "generate_lexicon_pkl"], [67, 3, 1, "", "generate_vect"], [67, 3, 1, "", "get_sentiment"], [67, 3, 1, "", "read_in_lexicons"]], "utils.gini_coefficient": [[68, 3, 1, "", "get_gini"], [68, 3, 1, "", "gini_coefficient"]], "utils.preload_word_lists": [[70, 3, 1, "", "get_dale_chall_easy_words"], [70, 3, 1, "", "get_first_person_words"], [70, 3, 1, "", "get_function_words"], [70, 3, 1, "", "get_question_words"]], "utils.preprocess": [[71, 3, 1, "", "assert_key_columns_present"], [71, 3, 1, "", "compress"], [71, 3, 1, "", "create_cumulative_rows"], [71, 3, 1, "", "get_turn_id"], [71, 3, 1, "", "preprocess_conversation_columns"], [71, 3, 1, "", "preprocess_naive_turns"], [71, 3, 1, "", "preprocess_text"], [71, 3, 1, "", "preprocess_text_lowercase_but_retain_punctuation"]], "utils.summarize_features": [[72, 3, 1, "", "get_average"], [72, 3, 1, "", "get_max"], [72, 3, 1, "", "get_min"], [72, 3, 1, "", "get_stdev"], [72, 3, 1, "", "get_sum"], [72, 3, 1, "", "get_user_average_dataframe"], [72, 3, 1, "", "get_user_sum_dataframe"]], "utils.zscore_chats_and_conversation": [[73, 3, 1, "", "get_zscore_across_all_chats"], [73, 3, 1, "", "get_zscore_across_all_conversations"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"": [0, 1, 2, 4, 5, 9, 11, 13, 25, 28, 29, 31, 32, 34, 35, 36, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 55, 59, 61, 62, 64, 65, 66], "0": [0, 1, 2, 5, 10, 13, 16, 21, 24, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 50, 51, 53, 55, 59, 61], "000": 42, "00222437221134802": [5, 64], "01": 51, "02": 51, "04": 40, "0496": [21, 33], "05": [13, 40, 50, 51], "06": 51, "08": 50, "09": [45, 46, 50], "1": [0, 1, 2, 3, 10, 13, 22, 24, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57, 59, 62], "10": [1, 5, 6, 21, 24, 33, 42, 59, 61, 64], "100": [1, 14, 21, 33, 37, 42, 47, 62], "1000": 42, "10th": 33, "1145": [21, 24], "1177": [5, 64], "11th": 33, "12": [35, 45, 46, 50], "1287": 6, "12th": 33, "13": 50, "14": 50, "15": [37, 50], "1579": [21, 33], "17": 50, "1948": 33, "195": 36, "1977": 62, "1lpngokujsx": 5, "1st": 50, "1st_person": 50, "1st_person_pl": 50, "1st_person_start": 50, "2": [1, 2, 34, 35, 41, 47, 59, 61, 62], "20": [37, 59], "2004": 42, "2007": [5, 42], "2009": 60, "2012": 55, "2013": [12, 16, 31, 32, 36, 37, 38, 41, 43, 50, 52, 54, 70], "2015": [53, 58, 60], "2016": 4, "2017": 13, "2018": [40, 44, 55], "2019": [35, 52], "2020": [18, 21, 24, 33, 49, 50, 56, 57], "2021": [1, 6, 43, 44], "2022": [13, 34], "2023": [5, 14, 30, 42, 59, 64], "2024": 40, "21": 59, "22": [41, 50], "2384068": 4, "24": [1, 61], "25": 47, "27": 50, "28": 50, "29": 50, "2nd": 50, "2nd_person": 50, "2nd_person_start": 50, "3": [0, 1, 2, 21, 34, 41, 51, 59, 61, 71], "30": 50, "3000": 33, "32": [34, 50], "3432929": [21, 24], "35": 51, "36": 50, "38": 50, "39": 49, "39512260": 68, "3n": 59, "4": [0, 5, 13, 21, 30, 33, 41, 56, 62], "42": 14, "4274": 6, "43": 50, "45": 50, "47": 50, "49": 50, "4pit4bqz6": 5, "4th": [21, 33], "5": [1, 5, 21, 30, 33, 37, 41, 59], "50": [1, 47], "52": 50, "53": 50, "57": 50, "58": 50, "5th": 33, "6": [1, 33, 43], "60": 51, "63": 50, "6365": 21, "64": 67, "68": 47, "6th": 33, "7": [30, 33, 48], "70": 50, "78": [35, 50], "7th": 33, "8": [1, 30, 33], "80": [21, 70], "82": 41, "85": 34, "86": 35, "87": 50, "89": [45, 46], "8th": 33, "9": [2, 5, 21, 30, 33, 40, 47, 50], "9123": 47, "92": 51, "93chall_readability_formula": [21, 70], "94": 15, "95": 47, "97": 51, "9855072464": 47, "9992": 47, "99954": 47, "9th": 33, "A": [1, 2, 4, 12, 13, 14, 15, 16, 17, 18, 19, 21, 23, 25, 28, 33, 34, 35, 37, 38, 40, 41, 44, 45, 46, 47, 49, 50, 51, 52, 57, 59, 60, 61, 62, 66, 67, 68, 70, 71, 72, 73], "And": [1, 62], "As": [1, 31, 35, 36, 40, 45, 61], "But": [1, 50, 62], "By": [1, 42, 50], "For": [0, 1, 31, 34, 37, 41, 42, 43, 47, 49, 54, 56, 59, 62, 65], "If": [0, 1, 2, 5, 21, 29, 30, 35, 45, 47, 50, 55, 61, 62, 63, 64, 67, 71], "In": [1, 21, 30, 31, 34, 35, 36, 37, 39, 41, 42, 45, 46, 47, 50, 55, 59, 61, 62], "It": [1, 2, 31, 32, 33, 36, 37, 41, 44, 45, 46, 50, 64, 65, 66, 67, 71], "NO": 37, "NOT": [1, 61], "No": [19, 53], "Not": 41, "One": [1, 37, 61], "That": [29, 55], "The": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "Then": [1, 55, 61], "There": [1, 11, 32, 61, 66], "These": [1, 11, 17, 32, 34, 42, 48, 52, 62, 69], "To": [0, 1, 29, 31, 34, 37, 40, 55, 56, 57, 61, 62], "WITH": 21, "Will": 50, "_deviat": 55, "_preprocessed_": 0, "abil": [13, 29], "abl": [31, 36, 61], "abort": 1, "about": [1, 12, 29, 31, 36, 41, 47, 61, 62], "abov": [1, 21, 34, 61], "abstract_id": 4, "accept": [0, 1, 58, 61], "access": [0, 1, 15], "accommod": [28, 32, 39, 45, 46, 64, 65, 66], "accord": [21, 37, 59, 64, 70], "accordingli": 63, "account": [1, 29, 32, 42], "accus": 50, "achiev": [50, 62], "acknowledg": 49, "acm": [21, 24], "acommod": 36, "across": [1, 13, 28, 31, 34, 40, 41, 42, 50, 62, 64, 73], "action": 59, "activ": [1, 9, 44, 55, 71], "actual": [41, 56], "ad": [61, 62, 71], "adapt": 59, "add": [0, 1, 2, 21, 51, 61], "addit": [0, 2, 32, 34, 42, 63, 69], "addition": [0, 30, 31, 32, 54], "address": 1, "adjac": 71, "adjust": [0, 21, 37, 63], "advanc": [31, 36], "advantag": 4, "adverb": [19, 31, 36], "adverb_limit": [19, 49], "affect": [0, 1, 29, 35, 44], "affirm": 49, "after": [0, 1, 31, 34, 36, 43, 61, 62, 64], "again": [32, 34], "against": [28, 31, 36, 52], "agarw": 62, "aggreg": [0, 3, 11, 37, 44, 62, 65, 66, 72], "agre": 47, "agreement": 49, "ah": [31, 36], "ai": 62, "aim": [39, 62], "airtim": [37, 62], "al": [1, 5, 14, 16, 18, 21, 24, 30, 31, 32, 33, 34, 35, 36, 38, 42, 43, 44, 49, 50, 52, 53, 54, 56, 57, 58, 59, 60, 64], "algorithm": [56, 57], "align": [35, 51], "all": [0, 1, 2, 6, 12, 13, 15, 19, 22, 28, 30, 31, 34, 35, 36, 37, 40, 41, 42, 46, 48, 49, 51, 52, 55, 58, 61, 62, 64, 66, 71, 73], "allow": 1, "almaatouq": 59, "along": 1, "alongsid": 1, "alphabet": 49, "alphanumer": 71, "alreadi": [0, 1, 2, 4, 10, 12, 16, 67], "also": [0, 1, 2, 28, 30, 31, 32, 34, 36, 37, 38, 42, 47, 51, 54, 60, 61, 62, 64, 65, 67, 69, 71], "alsobai": 59, "altern": 59, "although": [1, 23, 31, 36], "alwai": [1, 55], "am": [31, 36, 42, 54, 62], "amaz": [48, 56], "ambient": 32, "american": 33, "ami": [47, 59, 62], "amic": 62, "among": [36, 37, 52, 55, 62], "amongst": [6, 35, 48], "an": [1, 2, 5, 8, 11, 12, 13, 21, 29, 30, 31, 32, 33, 34, 36, 38, 40, 41, 42, 45, 47, 48, 50, 51, 52, 54, 59, 60, 61, 62, 63, 65, 66, 68], "analys": [1, 62], "analysi": [1, 11, 52, 62, 67, 71], "analyt": 62, "analyz": [0, 1, 2, 13, 14, 16, 17, 19, 20, 21, 22, 24, 28, 43, 52, 62, 67, 71], "analyze_first_pct": [0, 1, 2], "angri": 47, "ani": [0, 1, 29, 31, 33, 38, 54, 62, 71], "annot": [17, 50], "anoth": [30, 34, 36, 48], "answer": 29, "anybodi": [31, 36], "anyth": [1, 2, 23, 31, 36, 56], "anywher": [31, 36], "apartment": 42, "api": 47, "api_refer": 24, "apolog": [17, 50], "apologi": 49, "appear": [0, 15, 37, 38, 42, 64], "append": [1, 17, 64, 65, 66, 67], "appli": [4, 13, 14, 18, 62, 64, 69], "applic": [29, 71], "appreci": 50, "approach": [32, 38, 42, 45, 46, 49, 53, 64], "appropri": 69, "ar": [0, 1, 2, 3, 5, 9, 10, 11, 15, 17, 19, 21, 23, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 51, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 69, 71], "arcross": 34, "area": 62, "aren": [31, 36], "around": 2, "arous": 48, "arrai": [6, 8, 68], "articl": [37, 50], "ask": [20, 47, 54], "ask_ag": 49, "aspect": [50, 62], "assert_key_columns_pres": 71, "assign": [31, 36, 38, 45, 46, 52, 59, 63, 71], "assign_chunk_num": 69, "associ": [4, 15, 21, 29, 30, 31, 32, 36, 40, 45, 46, 47, 48, 61], "assum": [0, 1, 2, 10, 12, 16, 23, 41, 60, 71], "assumign": 1, "assumpt": [1, 41, 61], "asterisk": 22, "attribut": [1, 11, 34, 51, 52, 56, 62], "author": [5, 31, 36, 59], "automat": [1, 61, 69], "auxiliari": [31, 36], "avail": [62, 63, 64, 67], "averag": [11, 13, 28, 30, 33, 34, 35, 40, 41, 46, 52, 64, 65, 66, 72], "avil": 62, "avoid": 30, "awar": 29, "awesom": 62, "b": [4, 34, 35, 45, 46, 55, 62], "back": 62, "bag": [32, 38, 42, 45, 46, 49, 53, 56, 57], "bare_command": [19, 49], "base": [1, 2, 15, 18, 19, 31, 32, 34, 35, 36, 37, 40, 42, 51, 52, 53, 54, 55, 56, 57, 62, 63, 64, 65, 66, 71], "basic": [10, 11, 12, 16, 61, 62], "basic_featur": 11, "batch": 67, "batch_num": 1, "batch_siz": 67, "bay": [56, 57], "bbevi": 18, "becaus": [1, 2, 12, 21, 31, 36, 40, 56, 61], "becom": [44, 61, 62], "been": [1, 2, 12, 16, 31, 36, 61], "befor": [0, 1, 2, 17, 31, 36, 45, 48], "beforehand": 64, "begin": [34, 54, 58, 61, 62, 63], "behavior": [0, 62, 63], "being": [4, 13, 14, 16, 17, 20, 21, 24, 31, 32, 36, 43, 47, 51, 55, 56, 60], "belong": [1, 42], "below": [1, 11, 21, 33, 36, 45, 48, 51, 61, 62, 69], "ber": 54, "bert": [0, 1, 31, 35, 36, 39, 46, 61, 64, 67], "bert_path": 67, "bert_sentiment_data": 64, "best": [14, 29], "better": 61, "between": [4, 6, 13, 21, 23, 24, 28, 30, 31, 34, 35, 36, 37, 40, 45, 46, 55, 58, 59, 62, 64, 65], "betwen": 34, "beyond": 2, "big": 59, "binari": [10, 32, 38], "blame": 47, "blob": 24, "block": [22, 32, 48, 59], "blog": 15, "bold": [22, 64], "bool": [2, 63, 67, 71], "bootstrap": 62, "both": [1, 2, 42, 52, 54, 55, 59, 62], "bother": 50, "bottom": 59, "bought": 41, "bound": [29, 35, 36, 37, 42, 52, 55], "boundari": [34, 35], "break": [22, 48, 64], "brief": 44, "broader": 52, "broken": 59, "btw": 50, "bug": [1, 61], "build": [1, 7, 34, 45, 46, 62], "built": 11, "built_spacy_n": 15, "bullet": [22, 48, 64], "bunch": 59, "burst": 58, "bursti": [11, 39, 58, 65], "by_the_wai": 49, "c": [12, 34, 35, 45, 46, 62], "cach": [0, 1, 2, 51, 61], "calcul": [2, 5, 11, 12, 16, 18, 21, 28, 33, 41, 48, 49, 50, 56, 57, 58, 60, 62, 63, 64, 65, 66, 67, 68, 72, 73], "calculate_chat_level_featur": 69, "calculate_conversation_level_featur": 69, "calculate_hedge_featur": 64, "calculate_id_scor": 13, "calculate_info_divers": 65, "calculate_named_ent": 15, "calculate_num_question_na": 20, "calculate_politeness_senti": 64, "calculate_politeness_v2": 64, "calculate_team_bursti": 65, "calculate_textblob_senti": 64, "calculate_user_level_featur": 69, "calculate_vector_word_mimicri": 64, "calculate_word_mimicri": 64, "call": [1, 2, 8, 13, 61, 62, 64, 69], "can": [0, 1, 11, 23, 31, 32, 33, 34, 36, 37, 42, 43, 44, 47, 48, 49, 50, 52, 54, 60, 61, 62, 69], "can_you": 49, "cannot": [1, 31, 36, 45, 46, 49, 62], "cao": [21, 24, 33, 43, 44, 56, 57, 62], "cap": [22, 48, 64], "capit": [0, 48], "captur": [29, 30, 32, 34, 35, 38, 41, 42, 55], "caract": 40, "carefulli": 60, "casa_token": 5, "case": [1, 13, 16, 29, 30, 31, 36, 37, 41, 45, 46, 51, 55, 56, 59, 61], "casual": 43, "categori": [21, 32, 45, 46, 49, 52], "caus": [31, 32, 36, 59], "caveat": 1, "center": 62, "central": 34, "centroid": [34, 66], "certain": [5, 19, 30, 42, 45, 46, 49], "certainli": 42, "certainti": [11, 38, 39, 42, 64, 67], "cfm": 4, "chall": [1, 21, 39, 64, 70], "chang": [1, 34, 50, 61, 71], "charact": [2, 3, 15, 19, 37, 49, 62, 64, 65, 66, 71], "characterist": 62, "chat": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16, 23, 25, 28, 29, 32, 35, 36, 41, 44, 45, 46, 49, 59, 61, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "chat_data": [2, 6, 7, 8, 26, 27, 28, 63, 64, 65, 66, 67, 71], "chat_df": 14, "chat_level_data": 72, "chat_level_featur": 2, "chatlevelfeaturescalcul": [2, 17, 21, 64, 69], "chats_data": 73, "check": [19, 23, 44, 64, 67, 71], "check_embed": 69, "chen": 62, "choos": 60, "chose": 1, "chunk": [34, 59, 63], "chunk_num": 63, "circlelyt": 13, "citat": [21, 24], "cite": 50, "clarif": [16, 32, 64], "class": [1, 2, 31, 61, 62, 64, 65, 66], "classif": [21, 64], "classifi": [16, 21, 50, 56, 57], "classify_ntri": 16, "classify_text_dalechal": 21, "clean": [2, 17, 19, 67], "clean_text": 19, "clear": 1, "close": [31, 48, 62], "closer": [45, 46, 59], "clue": 62, "cmu": 12, "code": [6, 18, 29, 32, 51, 55, 61, 62, 68], "coeffici": [4, 39, 62, 65, 68], "coerce_to_date_or_numb": 23, "cognit": 62, "col": 2, "colab": [0, 1], "collabor": [59, 62], "collaps": 2, "collect": [2, 34, 49, 50, 52, 62], "colleg": 33, "column": [0, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 23, 25, 28, 51, 56, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "column_count_frequ": 28, "column_count_mim": 28, "column_mimc": 28, "column_nam": 71, "column_to_summar": 72, "com": [1, 2, 4, 5, 13, 15, 18, 64, 68, 71], "comb": 62, "combin": [0, 1, 6, 28, 61, 64, 71], "come": [12, 13, 21, 32, 33, 58, 61], "comm": [1, 61], "command": [1, 61], "comment": 48, "commit": 23, "commit_data": 19, "common": [32, 62, 64], "commonli": 37, "commun": [0, 1, 11, 44, 48, 55, 60, 62, 64], "companion": 1, "compar": [2, 31, 35, 42, 44, 45, 52, 64, 71, 73], "compat": [1, 61], "complement": [31, 36], "complet": [1, 2, 55], "complex": [35, 43, 50, 62], "compon": 50, "comprehens": [33, 48], "compress": 71, "comput": [0, 2, 4, 5, 6, 10, 11, 12, 13, 14, 28, 29, 30, 31, 34, 35, 36, 37, 40, 41, 42, 45, 46, 49, 52, 55, 62, 64, 65, 66, 69, 73], "compute_frequ": 28, "compute_vectors_from_preprocess": 0, "computetf": 28, "conain": 61, "concat_bert_featur": 64, "concaten": [19, 49, 64, 71], "concentr": 55, "concept": [29, 39, 42, 62], "conceptu": [61, 62], "concis": 43, "concret": 29, "conduct": 1, "confid": [2, 5, 15, 30, 47, 64], "conflict": 62, "confound": 44, "congruent": 34, "conjection_seper": 19, "conjunct": [19, 31, 36, 49], "conjunction_start": 49, "connect": 39, "conscious": 35, "consecut": 22, "consequ": 0, "consid": [1, 33, 37], "consider": [61, 62], "consist": [36, 40, 41], "constitut": 41, "constrain": [34, 35], "construct": [11, 55, 62], "constructor": 47, "consult": 5, "contain": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 23, 25, 28, 29, 30, 35, 38, 42, 47, 49, 55, 61, 62, 63, 64, 67, 71, 72, 73], "content": [0, 1, 12, 13, 28, 34, 36, 39, 41, 42, 45, 46, 62, 64, 67], "content_mimicry_scor": 28, "content_word_mimicri": 28, "context": [2, 32, 42, 48, 62, 71], "continu": [56, 57], "contract": 49, "contrast": 39, "contribut": [13, 34, 37, 62], "control": 1, "conv": 1, "conv_data": [2, 65], "conv_level_featur": 2, "conv_to_float_arr": 8, "convei": [6, 34, 52], "convers": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 23, 25, 28, 29, 31, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 58, 59, 61, 63, 64, 65, 66, 68, 71, 72, 73], "conversation_id": [2, 28, 61, 71], "conversation_id_col": [0, 1, 2, 4, 6, 7, 8, 9, 13, 23, 25, 26, 27, 61, 63, 64, 65, 66, 68, 72, 73], "conversation_num": [0, 1, 2, 6, 7, 66, 71, 73], "conversationlevelfeaturescalcul": [2, 65, 69], "convert": [8, 41, 49, 71], "convict": 5, "convokit": [17, 50, 62, 64], "coordin": 55, "copi": [0, 1], "copular": [31, 36], "core": [34, 69], "cornel": 17, "corpu": 50, "corrado": 37, "correl": [41, 55], "correspond": [30, 34, 35, 40, 49, 55, 66], "cosin": [6, 7, 13, 28, 31, 34, 35, 36, 40, 45, 46, 65], "could": [1, 31, 33, 36, 50, 54], "could_you": 49, "couldn": [31, 36], "count": [1, 3, 12, 14, 15, 16, 19, 21, 25, 28, 30, 31, 32, 36, 39, 41, 43, 44, 49, 52, 53, 54, 56, 58, 64, 65, 66], "count_all_cap": 22, "count_bullet_point": 22, "count_charact": 3, "count_difficult_word": 21, "count_ellips": 22, "count_emoji": 22, "count_emphasi": 22, "count_line_break": 22, "count_link": 22, "count_match": [19, 49], "count_messag": 3, "count_numb": 22, "count_parenthes": 22, "count_quot": 22, "count_responding_to_someon": 22, "count_spacy_match": 19, "count_syl": 21, "count_turn": 25, "count_turn_taking_index": 25, "count_user_refer": 22, "count_word": 3, "countabl": 65, "countd": 36, "counterfactu": 50, "cours": [16, 31, 34, 36, 63], "creat": [0, 1, 2, 13, 19, 31, 40, 42, 61, 62, 64, 65, 66, 71], "create_chunk": 63, "create_chunks_messag": 63, "create_cumulative_row": 71, "credit": 33, "crowd": 13, "csv": [0, 1, 2, 61, 62, 67], "cumul": [1, 2, 71], "cumulative_group": [0, 1, 2, 71], "current": [1, 11, 23, 31, 34, 35, 36, 40, 45, 46, 58, 61, 64, 71], "curt": 43, "custom": [0, 62], "custom_featur": [0, 1, 2, 61], "customiz": 62, "cut": 1, "cutoff": [2, 15, 47, 64], "d": [1, 31, 34, 36], "dale": [1, 21, 39, 64, 70], "dale_chall_help": 21, "danescu": 50, "dash": 22, "data": [0, 2, 6, 7, 8, 9, 13, 19, 20, 32, 37, 40, 41, 47, 51, 55, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "datafram": [0, 1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 23, 25, 28, 37, 47, 49, 59, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "dataknowsal": 15, "dataset": [1, 2, 9, 12, 13, 28, 31, 41, 47, 52, 61, 64, 65, 66, 73], "date": [1, 61], "datetim": [23, 58], "dcosta": 62, "deal": [50, 59], "death": 1, "debat": 59, "decid": 62, "decis": [1, 13, 62], "declar": [1, 61, 62, 69], "deepli": 62, "default": [0, 1, 2, 5, 13, 16, 30, 34, 35, 42, 47, 62, 63, 66, 67, 71, 73], "defer": [17, 50], "defin": [0, 11, 21, 31, 34, 36, 40, 59, 62, 64, 65, 66, 70], "definit": [1, 3, 44], "degre": [6, 30, 36, 45, 46, 55], "delet": 29, "deliber": 1, "demo": 61, "democrat": 1, "demystifi": 62, "denomin": 59, "densiti": 60, "dep_": 49, "dep_pair": 19, "depend": [0, 1, 10, 19, 32, 49, 52, 61, 63], "deriv": [2, 11, 65, 66], "describ": [11, 62], "design": [0, 1, 2, 13, 34, 62], "desir": [2, 63, 72], "detail": [0, 1, 33, 41, 43, 61, 62], "detect": [1, 32, 37, 38, 47, 48, 49, 54], "determin": [13, 18, 31, 35, 36, 40, 45, 46, 71], "dev": 24, "develop": [5, 37, 40, 62], "deviat": [4, 5, 29, 40, 41, 55, 58, 65, 72, 73], "df": [4, 8, 9, 12, 13, 16, 18, 23, 28, 63, 71], "dict": [17, 19, 28, 67], "dictionari": [15, 17, 19, 28, 30, 42, 49, 67], "did": [1, 31, 36, 37, 47, 50, 54, 62], "didn": [31, 36], "differ": [1, 2, 4, 11, 12, 23, 29, 31, 34, 36, 37, 39, 40, 44, 45, 46, 47, 49, 55, 62, 63, 64, 65, 66, 71], "differenti": [49, 59], "difficult": [21, 33], "difficult_word": 21, "difficulti": 33, "dimens": [40, 62], "dimension": [34, 35], "dinner": 41, "direct": [34, 43, 45, 47, 50, 69], "direct_quest": [32, 50, 54], "direct_start": 50, "directli": [1, 62, 69], "directori": [0, 1, 2, 19, 61, 65, 67], "disagr": 49, "disagre": 51, "discours": [31, 36], "discret": [31, 36, 45, 46], "discurs": [0, 1, 6, 8, 39, 40, 61, 65, 66], "discursive_divers": 11, "discus": 8, "discuss": [0, 1, 31, 34, 39, 40, 42, 43, 61, 62, 71], "dispers": 68, "displai": [34, 42, 46], "dispos": 1, "distanc": [34, 35, 40], "distinct": [36, 59], "distinguish": 59, "div": 16, "diverg": [6, 34, 35], "divers": [0, 1, 6, 8, 13, 39, 61, 65], "divid": [16, 34, 59, 63], "dl": [21, 24], "do": [0, 1, 29, 31, 34, 36, 37, 43, 49, 50, 54, 62, 69], "doc": 19, "doc_top": 13, "document": [1, 17, 61, 69], "doe": [1, 2, 29, 40, 42, 43, 45, 47, 54, 61, 71], "doesn": [0, 1, 2, 29, 31, 36, 45, 61], "doi": [5, 6, 21, 24, 64], "domain": 50, "don": [31, 36, 49, 54, 62, 67], "done": [2, 50], "dot": 22, "doubl": 30, "down": [31, 36], "download": [1, 61], "download_resourc": [1, 61], "downstream": [17, 62], "dozen": 62, "drive": [62, 69], "driver": [2, 61, 64, 65, 66], "drop": [0, 2, 64], "due": [34, 59], "duncan": 62, "duplic": [1, 2, 71], "durat": [58, 63], "dure": [2, 55, 59, 62], "dynam": [59, 61], "e": [0, 1, 2, 4, 15, 20, 29, 30, 31, 32, 34, 35, 36, 37, 38, 41, 42, 47, 48, 49, 52, 54, 56, 59, 63, 65, 66, 71], "e2": [21, 70], "each": [0, 1, 2, 3, 4, 7, 8, 9, 11, 12, 15, 17, 19, 23, 25, 28, 30, 31, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 55, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73], "earlier": [0, 1, 2], "easi": [1, 21, 62, 70], "easier": [21, 42], "easili": 33, "easy_word": 21, "eat": 34, "echo": 31, "econom": 37, "edg": [29, 59], "edu": [1, 12, 16, 17, 70], "effect": [1, 41], "effici": 1, "effort": 55, "either": [20, 23, 52, 55], "elaps": [23, 58], "element": [1, 6], "ellips": [22, 48, 64], "els": [1, 22, 47, 64], "embed": [8, 31, 34, 35, 36, 45, 46, 65, 66, 67, 69], "emili": [30, 35, 45, 46, 47, 59, 62], "emoji": [22, 48, 64], "emoticon": 48, "emphas": [22, 48, 64], "emphasi": 48, "empirica": [1, 2, 71], "emploi": 45, "empti": [0, 2, 13], "en": [21, 24, 70], "en_core_web_sm": [1, 61], "enabl": 71, "enclos": 22, "encod": [1, 8], "encompass": 62, "encount": [1, 34, 35, 61], "encourag": 64, "end": [0, 1, 15, 20, 23, 34, 54, 62, 63], "engag": 43, "engin": 2, "english": [34, 42], "enjoi": 62, "ensur": [0, 1, 40, 49, 61, 63, 67, 71], "entir": [1, 12, 36, 40, 41, 52, 59, 62, 73], "entiti": [0, 1, 2, 15, 39, 64], "entityrecogn": 47, "entri": 28, "ep8dauru1ogvjurwdbof5h6ayfbslvughjyiv31d_as6ppbt": 5, "equal": [1, 21, 23, 34, 37, 40, 55, 59, 61, 62, 63], "equival": [0, 1, 41, 55, 61], "eric": 62, "error": [1, 16, 61], "especi": [41, 62], "essenti": [51, 71], "estim": 31, "et": [1, 5, 14, 16, 18, 21, 24, 30, 31, 32, 33, 34, 35, 36, 38, 42, 43, 44, 49, 50, 52, 53, 54, 56, 57, 58, 59, 60, 64], "etc": [10, 15, 16, 17, 42], "evalu": [5, 47, 50], "evan": 62, "even": [0, 1, 2, 34, 37, 42, 62, 63, 67], "evenli": [34, 55], "event": [1, 34, 55, 61], "ever": 62, "everi": [1, 4, 13, 31, 34, 35, 36, 62], "everybodi": [31, 36], "everyon": [31, 36, 47, 62], "everyth": [31, 36, 56], "everywher": [31, 36], "evolut": 35, "evolv": [35, 71], "exactli": [1, 2, 71], "examin": [40, 62, 63], "exampl": [0, 10, 11, 15, 21, 24, 29, 31, 32, 34, 37, 42, 43, 48, 50, 51, 54, 56, 59, 60, 61, 62], "example_data": 1, "exce": 15, "exchang": [12, 35, 39, 40, 45, 55, 64], "exclud": [0, 41, 42], "exclus": [41, 42], "excus": 32, "exhibit": 35, "exist": [0, 1, 2, 55, 61, 62, 63, 64, 67], "expand": 49, "expect": [1, 37, 47], "expected_valu": 47, "explain": 29, "explan": [29, 43], "explor": [61, 62], "express": [5, 14, 30, 31, 32, 36, 38, 42, 64], "extend": 1, "extens": [43, 44], "extent": [1, 4, 7, 12, 31, 34, 35, 37, 51, 55, 59], "extern": 48, "extra": 51, "extract": [1, 17, 19, 28, 40, 50, 64], "extrem": [55, 56, 57], "face": 51, "facilit": [62, 71], "fact": [4, 35, 50, 54, 59], "factual": [17, 24, 50], "fail": [1, 61], "fals": [0, 1, 2, 31, 54, 61, 71], "famili": 42, "far": [34, 35, 46, 50, 62], "faster": 14, "feat_count": 19, "featuer": 2, "featur": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 61, 63, 64, 65, 66, 67], "feature_build": [0, 1, 61], "feature_method": [64, 65], "featurebuild": [0, 2, 47, 61, 69], "few": [48, 62], "fewer": [12, 60], "fflow": 11, "field": [13, 17], "file": [0, 1, 2, 12, 14, 19, 65, 67], "filenam": [0, 1, 19], "filenotfounderror": 67, "fill": 71, "filler": [37, 60], "filler_paus": 49, "filter": [19, 62], "final": [1, 2, 34, 42, 62], "find": [1, 19, 28, 50], "fingertip": 62, "finit": 55, "first": [0, 1, 2, 11, 12, 16, 19, 31, 34, 35, 36, 39, 40, 41, 42, 45, 46, 49, 52, 54, 59, 62, 64, 70, 71], "first_person": 12, "first_person_plur": 49, "first_person_raw": [12, 16], "first_person_singl": 49, "five": 37, "fix": 52, "flag": 71, "float": [2, 4, 5, 6, 8, 10, 13, 14, 16, 21, 24, 25, 28, 68], "floor": 59, "flow": [0, 1, 7, 31, 36, 39, 41, 45, 46, 61, 64], "focal": [31, 36], "focu": 41, "folder": [0, 1, 19], "follow": [1, 2, 14, 16, 17, 29, 31, 32, 33, 41, 42, 47, 49, 50, 53, 55, 59, 60, 61, 64, 65], "for_m": 49, "for_you": 49, "forc": [0, 1, 61], "form": 1, "formal_titl": 49, "format": [1, 8, 17, 22, 47, 48, 61, 62, 64], "former": [45, 46], "formula": [14, 33, 59, 64, 70], "fornt": 1, "forward": [0, 1, 7, 39, 41, 61, 64], "forward_flow": 35, "found": [1, 5, 28, 30, 33, 61, 69], "four": [1, 8], "fourth": 33, "frac": 55, "fraction": 59, "framework": [49, 50, 62], "frequenc": [28, 31, 44, 64], "frequency_dict": 28, "fridai": 34, "from": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 21, 28, 29, 31, 32, 33, 34, 35, 36, 39, 41, 42, 49, 50, 51, 53, 55, 56, 57, 58, 61, 62, 64, 65, 66, 67, 71], "full": [1, 2, 37], "full_empirical_dataset": 1, "fulli": [32, 48], "functinon": 12, "function": [1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 20, 21, 23, 28, 31, 39, 44, 45, 46, 50, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73], "function_mimic_word": 28, "function_mimicry_scor": 28, "function_word_mimicri": 28, "function_word_refer": 28, "fund": 62, "further": [1, 2, 61, 71], "futur": [23, 66], "g": [0, 1, 4, 15, 20, 29, 31, 32, 36, 37, 38, 41, 42, 47, 48, 52, 54, 59, 63, 65, 66, 71], "game": [1, 2, 59, 71], "gaug": [33, 52], "gener": [0, 1, 2, 9, 11, 12, 16, 21, 31, 34, 35, 36, 40, 42, 45, 46, 49, 51, 59, 61, 67, 69, 71, 72], "generaliz": 23, "generate_bert": 67, "generate_certainty_pkl": 67, "generate_lexicon_pkl": 67, "generate_vect": 67, "gensim": 40, "get": [0, 16, 20, 21, 28, 30, 31, 36, 49, 66], "get_all_dd_featur": 11, "get_averag": 72, "get_centroid": 66, "get_certainti": 5, "get_certainty_scor": 64, "get_content_words_in_messag": 28, "get_conversation_level_aggreg": 65, "get_cosine_similar": 6, "get_dale_chall_easy_word": [21, 70], "get_dale_chall_score_and_classf": 64, "get_dd": 6, "get_dd_featur": 8, "get_dep_pair": [19, 49], "get_dep_pairs_noneg": [19, 49], "get_discursive_diversity_featur": 65, "get_first_pct_of_chat": 2, "get_first_person_word": [12, 70], "get_forward_flow": [7, 64], "get_function_word": 70, "get_function_words_in_messag": 28, "get_gini": 68, "get_gini_featur": 65, "get_info_divers": 13, "get_info_exchange_wordcount": 12, "get_liwc_r": 14, "get_max": 72, "get_mimicry_bert": 28, "get_min": 72, "get_moving_mimicri": 28, "get_named_ent": 64, "get_nan_vector": 27, "get_polarity_scor": 24, "get_politeness_strategi": 17, "get_politeness_v2": 18, "get_proportion_first_pronoun": 16, "get_question_word": 70, "get_reddit_featur": 64, "get_senti": 67, "get_stdev": 72, "get_subjectivity_scor": 24, "get_sum": 72, "get_team_bursti": 4, "get_temporal_featur": [4, 64], "get_time_diff": 23, "get_time_diff_startend": 23, "get_turn": 25, "get_turn_id": 71, "get_turn_taking_featur": 65, "get_unique_pairwise_combo": 6, "get_user_average_datafram": 72, "get_user_level_aggreg": 65, "get_user_level_averaged_featur": 66, "get_user_level_summary_statistics_featur": 66, "get_user_level_summed_featur": 66, "get_user_network": [11, 66], "get_user_sum_datafram": 72, "get_variance_in_dd": 26, "get_within_person_disc_rang": 27, "get_word_ttr": 16, "get_zscore_across_all_chat": 73, "get_zscore_across_all_convers": 73, "gina": 62, "gini": [39, 62, 65, 68], "gini_coeffici": [11, 69], "github": [0, 1, 2, 18, 71], "give": [1, 29, 37, 61], "give_ag": 49, "given": [5, 6, 13, 14, 28, 30, 31, 33, 34, 35, 36, 40, 41, 55, 59, 66, 67, 71], "go": [1, 34, 35, 45, 46, 50, 62], "goal": 62, "good": [50, 56, 62], "goodby": 49, "googl": [0, 1], "got": [31, 36], "gotta": [31, 36], "grade": 33, "grader": 21, "grai": 35, "grammat": 36, "granularli": 35, "grate": 62, "gratitud": [17, 49, 50], "great": [47, 50, 51, 56, 59, 60, 62], "greater": 55, "greet": 50, "groceri": 41, "group": [0, 1, 2, 4, 13, 29, 33, 34, 41, 52, 59, 62, 68, 71, 72], "grouping_kei": [0, 1, 2, 71], "gt": 22, "guess": 10, "gun": 1, "gy": 15, "gym": 34, "ha": [0, 1, 2, 32, 34, 35, 37, 42, 43, 46, 52, 54, 55, 56, 59, 62, 63, 71], "had": [1, 31, 36, 54, 61], "hadn": [31, 36], "handl": [19, 29, 71], "happen": [1, 2, 55, 62, 63], "happi": 42, "harder": 21, "hashedg": [17, 50], "hasn": [31, 36], "hasneg": 50, "hasposit": 50, "hate": 31, "have": [0, 1, 2, 10, 12, 16, 31, 34, 36, 37, 40, 41, 42, 45, 46, 50, 54, 59, 60, 61, 62, 71], "haven": [31, 36], "he": [1, 31, 36], "header": 18, "hear": 32, "heart": [61, 62], "heat": 1, "heavi": 62, "hedg": [11, 30, 39, 49, 50, 64], "hei": [1, 35, 45, 46, 50], "helena": [47, 62], "hello": [0, 43, 49], "help": [0, 31, 34, 36, 43, 45, 46, 52, 58, 69], "helper": [23, 67], "her": [30, 31, 36], "here": [0, 1, 29, 34, 41, 42, 47, 61, 66], "herself": [31, 36], "hesit": [60, 64], "hi": [31, 35, 36, 43, 45, 46], "hierach": 71, "hierarch": 71, "high": [0, 1, 2, 61, 62, 71], "higher": [21, 31, 34, 36, 40, 41, 42, 44, 45, 46, 55, 60], "highest": 71, "highlight": 1, "him": [31, 36], "himself": [31, 36], "hmm": [31, 36], "hoc": 62, "hole": 62, "home": 42, "homework": 34, "homonym": 31, "hope": 35, "host": [45, 46], "hour": 48, "how": [1, 5, 29, 30, 31, 34, 35, 36, 39, 43, 45, 51, 52, 54, 56, 62], "howev": [0, 1, 3, 35, 40, 42, 44, 54, 56, 61, 62], "howitwork": 1, "html": [15, 17, 24], "http": [1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 18, 21, 24, 41, 45, 46, 47, 64, 68, 70, 71], "hu": [1, 42, 62], "hug": 51, "huggingfac": 1, "huh": [31, 32, 36], "human": [37, 50, 62], "hyperlink": 48, "hyphen": [1, 61], "hypothet": 42, "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 71, 73], "iby1": 5, "id": [2, 4, 7, 23, 28, 62, 66, 68, 71, 72, 73], "idea": [12, 35, 40, 47, 51], "ident": [34, 35], "identif": 1, "identifi": [0, 1, 2, 4, 8, 9, 15, 23, 25, 30, 41, 47, 50, 52, 61, 63, 64, 71, 72], "identiif": [13, 71], "ignor": [1, 32], "illustr": [1, 41, 48, 62], "imagin": 1, "immedi": [31, 35, 64], "impact": [1, 60], "impersonal_pronoun": 49, "implement": 64, "impli": 37, "import": [31, 32, 36, 44, 45, 62, 69], "incent": 13, "includ": [0, 1, 2, 10, 17, 22, 31, 32, 35, 36, 42, 45, 46, 51, 52, 56, 62, 66, 71], "inclus": [13, 71], "incongru": [8, 34], "incorpor": [1, 42, 45, 46], "increas": [1, 42, 62], "increment": 71, "independ": 1, "index": [1, 2, 4, 13, 25, 37, 39, 55, 61, 65], "indic": [1, 2, 16, 21, 22, 30, 32, 34, 35, 36, 40, 41, 43, 44, 48, 49, 50, 52, 55, 60, 63, 71], "indirect": 50, "indirect_btw": 50, "indirect_greet": 50, "indirectli": 69, "individu": [0, 1, 5, 11, 31, 34, 37, 45, 50, 59, 60, 62, 72], "inequ": 37, "infer": [1, 51, 67], "influenc": 1, "info": [13, 14, 18, 64], "info_divers": 13, "info_exchang": 64, "info_exchange_wordcount": [41, 64], "info_exchange_zscor": 11, "inform": [1, 6, 11, 12, 13, 24, 32, 34, 39, 48, 62, 64, 65], "informal_titl": 49, "information_divers": 11, "initi": [2, 62, 63, 64, 65, 66], "input": [0, 2, 4, 6, 12, 13, 14, 15, 16, 19, 20, 21, 22, 28, 31, 50, 55, 60, 62, 63, 64, 65, 66, 67, 71, 72], "input_column": [65, 66], "input_data": [25, 68, 72], "input_df": [1, 2, 61, 71], "inquiri": [30, 39, 52], "insid": 1, "insight": 1, "inspir": 15, "instal": [1, 61, 62], "instanc": [1, 22, 50, 59, 66], "instanti": 2, "insteac": 1, "instead": [1, 2, 62], "instruct": [1, 61], "int": [2, 3, 10, 13, 15, 16, 19, 20, 21, 22, 28, 63, 64, 67], "intact": 71, "integ": [13, 40, 47], "intend": 59, "interact": [1, 11, 43, 44, 62, 69], "interconnect": 62, "interest": [1, 61, 62], "interfac": 62, "intermedi": [59, 64], "intern": 29, "interpret": [0, 23], "interrupt": 59, "interv": [58, 65], "introduc": 62, "introduct": [11, 61], "invalid": 67, "invers": 64, "involv": [41, 62, 65], "io": [24, 47], "ipynb": [0, 1], "is_hedged_sentence_1": 10, "isn": [1, 31, 36], "issu": [1, 31, 36, 37, 42, 61], "ital": 64, "italic": 22, "item": [0, 71], "its": [0, 2, 15, 31, 35, 36, 40, 41, 47, 54, 55, 64, 69], "itself": [23, 31, 36, 44], "john": 1, "jonson": 62, "journal": [5, 64], "jurafski": 70, "juri": 1, "juries_df": 1, "jury_conversations_with_outcome_var": 1, "jury_feature_build": 1, "jury_output_chat_level": 1, "jury_output_conversation_level": 1, "jury_output_turn_level": 1, "jury_output_user_level": 1, "just": [0, 1, 2, 31, 36, 46, 50, 59, 61, 62], "katharina": 34, "keep": [1, 71], "kei": [1, 2, 4, 19, 28, 30, 54, 61, 71], "keyerror": 71, "keyword": [19, 49], "kind": [10, 62], "kitchen": 42, "knob": 0, "know": [1, 30], "knowledg": 29, "known": [1, 32, 61], "kumar": 62, "kw": 19, "lab": [1, 2, 62, 71], "label": [1, 15, 21, 51], "lack": [31, 38, 45, 46], "languag": [15, 34, 42, 50, 62], "larg": [31, 69], "larger": [0, 61], "last": [1, 31], "late": 32, "later": [0, 1, 2, 61], "latter": [31, 36], "lda": [13, 40], "learn": [61, 62], "least": [10, 32, 42, 63, 67], "led": 62, "legal": 49, "lemmat": [13, 40], "len": 28, "length": [14, 35, 39, 41, 42, 44], "less": [13, 32, 50, 52, 55, 62, 63], "let": [41, 49, 53], "let_me_know": 49, "letter": [49, 71], "level": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 14, 16, 23, 61, 64, 65, 66, 71, 72], "lexic": [10, 12, 14, 16, 31, 32, 36, 60, 62, 64], "lexical_featur": [14, 64], "lexical_features_v2": [10, 11], "lexicon": [5, 10, 14, 30, 39, 50, 52, 67, 69], "lexicons_dict": 67, "librari": [34, 51, 56, 57], "lift": 62, "light": 61, "like": [1, 22, 31, 34, 36, 41, 50, 61, 62], "limiat": 32, "limit": [11, 32, 37, 42, 54], "line": [0, 1, 19, 22, 48, 61, 62, 64], "linear": 64, "linguist": [18, 19, 30, 39, 50, 52], "link": [22, 29, 48, 50, 64], "list": [1, 2, 6, 7, 10, 11, 12, 13, 15, 19, 20, 21, 22, 28, 31, 33, 36, 37, 42, 48, 49, 50, 53, 54, 61, 64, 65, 66, 67, 68, 70, 71], "literatur": 62, "littl": 38, "littlehors": 1, "liu": [42, 52], "live": [1, 54], "liwc": [14, 30, 39, 51, 52, 56, 62], "liwc_featur": [10, 14], "lix": 34, "ll": [1, 31, 36, 61], "load": [19, 69], "load_saved_data": 19, "load_to_dict": 19, "load_to_list": 19, "loc": 15, "local": [1, 51, 61], "locat": [1, 62], "long": [4, 42], "longer": [30, 41, 43, 48, 61, 62], "look": [2, 34, 61, 65, 66], "loos": 36, "lot": [31, 36], "loud": 60, "love": [31, 56], "low": [1, 2, 29, 55, 60, 71], "lower": [21, 31, 33, 36, 41, 42, 44, 55, 60], "lowercas": [2, 13, 40, 48, 49, 71], "lowest": 71, "lpearl": 16, "lst": 6, "m": [30, 31, 36], "made": [1, 23, 35, 59, 61, 62], "magnitud": 55, "mai": [1, 2, 11, 31, 32, 35, 36, 37, 41, 42, 43, 44, 54, 61, 62, 71], "main": [1, 2, 5, 62, 64, 65, 66], "make": [0, 1, 5, 34, 42, 55, 56, 62, 66, 69, 71], "man": 62, "mani": [1, 4, 11, 32, 37, 41, 60, 62, 66], "manner": [55, 62], "manual": [1, 61], "map": [13, 34], "mark": [19, 20, 22, 43, 54, 64, 71], "marker": [18, 32, 39, 42, 50, 51, 52, 54, 56], "marlow": 44, "matarazzo": 62, "match": [5, 16, 19, 30], "math": 34, "matter": 47, "max": 66, "max_num_chunk": 63, "maxim": [34, 35, 37], "maximum": [63, 65, 72], "mayb": [38, 47], "mcfarland": 70, "me": [31, 32, 36, 41, 50, 53], "mean": [0, 1, 4, 6, 11, 13, 21, 29, 31, 34, 36, 40, 41, 42, 47, 55, 56, 58, 61, 62, 65, 66, 73], "meaning": [41, 55], "meaningless": 41, "meant": 39, "measur": [0, 7, 12, 13, 20, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 51, 52, 54, 55, 56, 57, 58, 59, 60, 62, 64, 68], "mechan": 32, "medium": 21, "meet": 48, "member": [13, 34, 37, 55], "merg": [2, 8, 65, 66], "merge_conv_data_with_origin": 2, "messag": [0, 1, 2, 3, 4, 5, 8, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 28, 30, 31, 34, 35, 36, 37, 39, 41, 45, 46, 47, 48, 50, 51, 52, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 71, 73], "messaga": 61, "message_col": [0, 1, 2, 12, 13, 14, 61, 64, 65, 67, 71], "message_embed": [6, 7, 8], "message_lower_with_punc": 71, "metadata": [0, 1], "method": [5, 31, 41, 50, 62], "metric": [0, 1, 8, 30, 34, 35, 46, 47, 48, 55, 66], "michael": 1, "mid": [1, 2, 71], "middl": [21, 34, 63], "might": [0, 1, 29, 43, 48, 53], "mikeyeoman": [14, 18, 64], "mileston": 34, "mimic": [28, 31, 36, 45], "mimic_word": 28, "mimick": [28, 31, 64], "mimicri": [0, 1, 28, 31, 35, 36, 39, 61, 64], "mimicry_bert": [45, 46], "mind": [1, 35, 50], "mine": [31, 36, 53, 59], "minim": [0, 41, 60], "minimum": [65, 72], "minu": [12, 41, 64], "minut": [55, 58], "mirror": 1, "miss": [1, 32, 61, 71], "mitig": [31, 36], "mizil": 50, "mm": [31, 36], "mnsc": 6, "modal": 50, "mode": 60, "model": [1, 13, 15, 31, 34, 35, 36, 40, 45, 46, 47, 51, 62, 67], "modif": 35, "modifi": [9, 19, 32, 64], "modul": [0, 1, 11, 34, 49, 61, 69], "monologu": 59, "more": [0, 1, 2, 11, 12, 22, 23, 24, 31, 32, 34, 36, 37, 40, 41, 42, 43, 44, 45, 46, 50, 52, 55, 59, 61, 62, 71], "morn": 1, "most": [24, 31, 55, 62, 69], "motiv": 61, "move": [0, 1, 28, 31, 36, 39, 45, 59, 61], "movi": 31, "much": [1, 31, 34, 35, 36, 45, 62], "multi": [1, 2, 71], "multidimension": [45, 46], "multipl": [0, 1, 2, 19, 62, 71], "must": [1, 6, 62, 71], "my": [30, 31, 35, 36, 45, 46, 50, 53], "my_chat_featur": 1, "my_feature_build": 61, "my_fil": [0, 1], "my_output_chat_level": 61, "my_output_conversation_level": 61, "my_output_user_level": 61, "my_pandas_datafram": 61, "myself": [31, 36, 53], "n": [35, 45, 46, 47, 57, 59, 60], "n_chat": 59, "na": [5, 33, 43, 44, 48, 49, 50, 53, 58], "naiv": [2, 20, 32, 34, 38, 39, 53, 56, 57, 64], "name": [0, 1, 2, 4, 7, 8, 9, 12, 13, 14, 15, 17, 19, 23, 25, 28, 30, 32, 35, 39, 45, 46, 50, 51, 56, 61, 63, 64, 66, 67, 68, 71, 72, 73], "name_to_train": 47, "named_ent": [15, 47], "named_entity_recognition_featur": 11, "nan": [0, 34], "nate": [35, 45, 46], "nathaniel": [35, 45, 46], "nativ": 50, "natur": [43, 55], "ndarrai": 68, "nearest": [13, 40], "nearli": 62, "necessari": [63, 67], "need": [0, 1, 2, 21, 62, 66, 67], "need_sent": 67, "need_senti": 67, "neg": [24, 29, 31, 34, 35, 36, 42, 50, 51, 52, 54, 56, 62, 67], "negat": [19, 49], "negative_bert": 51, "negative_emot": [49, 51, 52, 56], "negoti": 62, "neighborhood": 54, "neither": 30, "ner": 15, "ner_cutoff": [0, 1, 2, 47, 64], "ner_train": 64, "ner_training_df": [0, 1, 2, 47, 64], "nest": [0, 1, 2, 22, 71], "net": [45, 46], "network": 11, "neutral": [5, 24, 30, 51, 55, 67], "neutral_bert": 51, "never": 1, "new": [1, 4, 13, 34, 64, 65, 66, 72], "new_column_nam": 72, "next": [1, 32, 47, 58], "nice": [50, 54], "nicknam": 1, "niculescu": 50, "night": 31, "nikhil": [59, 62], "nltk": [1, 42, 61], "nobodi": [31, 36], "nois": 32, "non": [1, 2, 28, 31, 37, 48, 62, 71], "none": [2, 19, 23, 37, 55, 64, 65, 66, 67], "nor": 30, "normal": [19, 31], "notabl": 62, "note": [0, 1, 2, 12, 16, 20, 42, 61, 71], "notebook": [0, 1], "noth": [31, 36, 56], "noun": 1, "novel": [45, 46], "now": [0, 1], "nowher": [31, 36], "np": 68, "ntri": 32, "null": 34, "num": 48, "num_char": 65, "num_chunk": [27, 63], "num_hedge_word": 10, "num_messag": 65, "num_named_ent": [15, 47], "num_row": 63, "num_top": 13, "num_word": [12, 16, 65], "number": [0, 3, 11, 12, 13, 15, 16, 19, 20, 21, 22, 23, 25, 28, 31, 32, 34, 36, 37, 40, 41, 42, 43, 44, 47, 48, 49, 54, 56, 58, 59, 60, 62, 63, 64, 66, 69, 71, 72], "numer": [0, 1, 13, 33, 68, 72, 73], "numpi": [1, 61, 68], "o": 35, "object": [1, 2, 19, 44, 50, 57, 58, 61, 62, 64, 65, 66], "obtain": [13, 17, 23, 24, 34], "occur": [0, 4, 31, 42, 71], "occurr": 19, "off": [1, 31, 36], "offer": 0, "offici": 61, "often": [36, 47, 48, 62], "oh": [31, 36, 48], "okai": [31, 36], "older": [1, 61], "on_column": [18, 23, 28, 68, 72, 73], "onc": [2, 11, 58, 61, 62], "one": [0, 1, 2, 4, 10, 12, 19, 23, 25, 29, 31, 32, 36, 37, 47, 51, 56, 59, 61, 62, 67, 68, 71, 73], "ones": [31, 36], "onli": [0, 1, 2, 5, 11, 23, 29, 31, 32, 34, 36, 37, 45, 53, 58, 59, 61, 62, 71], "onlin": [1, 32, 39, 64], "onward": 0, "open": [0, 62, 66], "operation": [39, 50, 59], "opinion": [24, 31], "oppos": [2, 31, 34, 35, 55], "opposit": 34, "option": [1, 2, 37, 62, 63, 67, 71], "order": [0, 1, 35, 37, 42, 71], "org": [6, 15, 21, 24, 41, 70], "origin": [1, 2, 5, 12, 21, 31, 32, 35, 36, 37, 45, 46, 49, 59], "orthogon": 34, "other": [1, 9, 11, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 45, 46, 48, 51, 52, 54, 56, 58, 59, 61, 62, 64, 66, 71], "other_lexical_featur": [11, 64], "otherwis": [2, 10, 21, 23, 32, 38, 63, 67], "our": [0, 1, 2, 11, 13, 29, 31, 32, 36, 37, 39, 53, 59, 61, 71], "ourselv": 53, "out": [1, 2, 16, 19, 31, 36, 55, 60, 62], "outcom": [1, 44, 62], "output": [0, 1, 2, 10, 17, 19, 40, 61, 62, 64, 67], "output_file_path_chat_level": [0, 1, 2, 61], "output_file_path_conv_level": [0, 1, 2, 61], "output_file_path_user_level": [0, 1, 2, 61], "output_path": 67, "outsid": [1, 2, 12], "over": [1, 16, 29, 31, 34, 35, 36, 37, 53, 55, 60, 62, 71], "overal": [30, 31, 34, 36, 45, 46], "overrid": [0, 1], "overview": [0, 61, 62], "overwritten": 1, "own": [0, 1, 9, 35, 62], "p": [14, 55], "pacakg": 24, "pace": [43, 62], "packag": [17, 18, 40, 62], "pad": 19, "page": [1, 11, 29, 39, 61, 62, 69], "pair": [6, 19, 34, 49, 71], "pairwis": [6, 34], "panda": [0, 1, 2, 12, 14, 16, 23, 47, 64, 65, 66, 71, 72, 73], "paper": [4, 5, 12, 14, 18, 29, 40, 50, 64], "paragraph": 22, "param": 71, "paramet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 47, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73], "paramt": 1, "pardon": 32, "parenthes": [22, 48, 64], "parenthet": [22, 48], "pars": [16, 50, 60], "part": [1, 10, 13, 29, 36, 42, 52, 71], "particip": [1, 9, 37, 62], "particl": [31, 36], "particular": [11, 32, 34, 41, 45, 47, 51, 59, 62], "particularli": 42, "partner": 32, "pass": [1, 13, 21, 47, 71], "path": [0, 1, 2, 19, 67], "path_in": 19, "pattern": [4, 11, 19, 55, 62, 67], "paus": 4, "pd": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 18, 19, 23, 25, 63, 64, 65, 66, 67, 68, 71], "pdf": [5, 12, 13, 14, 16, 18, 21, 24, 64, 70], "penalti": 1, "pennebak": [12, 37, 41, 42, 52], "pennyslvania": 62, "peopl": [1, 32, 59, 62], "per": [1, 6, 9, 14, 19, 42, 63, 66, 72], "percentag": [2, 21], "perfect": [37, 59], "perform": [0, 1, 2, 16, 50], "perhap": 1, "period": [4, 34, 55], "person": [1, 8, 12, 15, 16, 32, 34, 39, 41, 42, 50, 59, 62, 64, 70], "perspect": 1, "petrocelli": 5, "pgcr_yeoman": 14, "phrase": [19, 30, 38, 54], "phrase_split": 19, "pickl": [19, 67], "piec": [36, 42, 59, 63], "pl": 50, "place": [55, 61, 62], "plan": [34, 35, 45, 46], "player": 59, "pleas": [0, 1, 38, 49, 50, 61, 62], "please_start": 50, "point": [22, 24, 34, 35, 45, 46, 48, 52, 64, 66], "poisson": 55, "polar": [24, 39, 51, 52, 64], "polit": [1, 17, 18, 30, 32, 38, 39, 42, 51, 52, 54, 56, 64], "politeness_featur": 11, "politeness_v2": 11, "politeness_v2_help": 11, "politenessstrategi": [17, 50], "portion": 0, "posit": [0, 11, 15, 24, 29, 31, 39, 42, 50, 51, 54, 56, 62, 64, 67], "positive_affect_lexical_per_100": [51, 52, 56], "positive_bert": 51, "positive_emot": [49, 51, 52, 56], "positivity_zscor": 64, "positivity_zscore_chat": 52, "positivity_zscore_convers": 52, "possess": 31, "possibl": [1, 34, 62, 66], "possibli": [38, 62], "practic": [14, 34, 35], "pre": [1, 4, 21, 37, 49, 64], "preced": [31, 35, 71], "precend": 35, "precis": 47, "precomput": 51, "predefin": 19, "predetermin": [31, 36], "predict": [2, 47, 51, 64], "prefer": [0, 1], "preload_word_list": 69, "prep_simpl": 19, "prep_whol": 19, "preposit": [31, 36], "preproces": 48, "preprocess": [0, 2, 13, 19, 40, 43, 49, 51, 69], "preprocess_chat_data": 2, "preprocess_conversation_column": 71, "preprocess_naive_turn": 71, "preprocess_text": 71, "preprocess_text_lowercase_but_retain_punctu": 71, "presenc": [2, 32, 67], "present": [1, 2, 30, 31, 38, 55, 62, 71], "prespecifi": 19, "prevent": 51, "previou": [1, 7, 28, 31, 36, 45, 46, 58, 64, 71], "primari": 34, "print": 2, "prior": [2, 64, 71], "priya": [47, 62], "probabl": [15, 47], "problem": 62, "procedur": 62, "proceed": 46, "process": [0, 1, 2, 4, 10, 21, 37, 55, 62, 64, 65, 67, 69, 71], "prodi": 15, "produc": [2, 34], "product": 15, "professor": 62, "progress": [1, 2], "project": [54, 62], "pronoun": [12, 16, 31, 36, 39, 41, 42, 64, 70], "proper": 1, "proport": [16, 39, 42, 64], "propos": 37, "provid": [0, 1, 2, 15, 29, 30, 33, 36, 39, 44, 47, 54, 62], "proxi": 42, "pseudonym": 1, "psycholog": 42, "pub": 70, "publish": [5, 30, 64], "pubsonlin": 6, "punctuat": [0, 16, 19, 20, 21, 28, 43, 54, 60, 71], "punctuation_seper": 19, "puncut": 48, "pure": [24, 36], "purpos": 1, "put": [34, 50, 62, 66], "py": [0, 1, 14, 49], "pypi": [1, 61], "python": [1, 32, 41, 56, 57, 61, 62, 68], "qtd": 62, "qualiti": 41, "quantifi": [31, 36, 62], "quantiti": [37, 39, 41, 47], "quartil": 50, "question": [16, 19, 20, 29, 32, 39, 49, 50, 64, 66, 68, 70], "question_num": 11, "question_word": 20, "quick": [1, 43], "quickli": 0, "quit": 40, "quot": [22, 48, 64], "quotat": [22, 48], "rabbit": 62, "rain": 41, "rais": [67, 71], "random": 55, "rang": [5, 8, 24, 30, 33, 34, 35, 40, 51, 53, 55, 56, 57], "ranganath": [16, 31, 32, 36, 38, 43, 54, 70], "ranganath2013": 70, "ranganathetal2013_detectingflirt": 16, "rapid": [1, 4], "rare": [34, 35], "rate": [14, 42, 51], "rather": [31, 34, 35, 36, 37, 45, 46, 63], "ratio": [16, 39, 64], "raw": [0, 12, 16, 21, 31, 33, 50, 64], "re": [1, 31, 36, 42, 50, 61], "read": [0, 1, 2, 16, 21, 29, 33, 61, 62, 64, 65, 66, 67], "read_csv": 1, "read_in_lexicon": 67, "readabl": [11, 33, 64, 70], "reader": 33, "readi": 1, "readili": 62, "readthedoc": 24, "real": [1, 55], "realit": 13, "realli": [31, 36, 50], "reason": [31, 36, 45, 46, 49], "reassur": 49, "recal": 47, "recept": [18, 32, 39, 42, 50, 51, 52, 54, 56, 62, 64], "recogn": [1, 43, 47], "recognit": [0, 1, 2, 39, 64], "recommend": [42, 62], "reddit": [48, 64], "reddit_tag": 11, "redditus": 48, "reduc": 63, "reduce_chunk": 63, "redund": [42, 62], "refer": [0, 1, 11, 22, 24, 28, 31, 42, 48, 52, 62, 64, 70], "reflect": [37, 43], "regardless": 1, "regener": [0, 2, 51, 67], "regenerate_vector": [0, 1, 2, 67], "regex": [14, 16, 49], "regist": 37, "regress": 1, "regular": [5, 14, 30, 32, 42, 55, 58], "reichel": [53, 58, 60], "reidl": [4, 13], "reinvent": 62, "rel": [41, 51, 52, 55, 60, 64], "relat": [1, 61, 62, 64], "relationship": 36, "relev": [1, 29, 42, 44, 49, 51, 56, 61, 64, 65], "reli": [31, 34, 35, 36, 69], "reliabl": [33, 42], "remain": [1, 30, 71], "rememb": 1, "remov": [0, 2, 9, 13, 19, 28, 40, 43, 48, 49, 50, 71], "remove_active_us": 9, "renam": 1, "repair": [16, 39], "repeat": [60, 71], "repetit": 60, "replac": 19, "report": [1, 61], "repres": [2, 4, 6, 7, 11, 13, 23, 31, 34, 36, 42, 45, 46, 66, 67, 68, 71, 72, 73], "represent": [34, 38], "reproduc": [36, 62], "republican": 1, "request": [32, 50, 51], "requir": [0, 1, 20, 21, 31, 55, 61, 62, 64, 65, 66, 67], "research": [1, 2, 62], "reserv": 0, "resolv": 62, "resourc": [1, 39, 48, 61, 62], "respect": [1, 2, 12, 31, 36, 37, 69], "respons": [22, 48, 55, 58, 64], "restaur": [34, 56], "restor": 0, "restrict": 71, "result": [40, 55, 65, 72], "retain": [2, 16, 20, 21, 60, 71], "retriev": 50, "retunr": 3, "return": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 30, 32, 43, 49, 50, 51, 55, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "reveal": 62, "revert": 50, "review": 62, "rewrit": 50, "rich": 62, "riedl": [13, 40, 55], "right": [31, 36, 61, 62], "roberta": [1, 39, 42, 52, 56, 64, 67], "robust": 13, "rocklag": [5, 30, 64], "room": 59, "root": [13, 40], "rough": [12, 54], "roughli": 31, "round": [13, 40, 59, 71], "round_num": 1, "row": [0, 1, 2, 9, 13, 25, 37, 40, 59, 63, 68, 71, 72, 73], "rowbotham": 62, "rucker": 5, "rule": [1, 69], "run": [0, 10, 12, 16, 35, 46, 47, 48, 51, 61, 69], "runtim": [1, 35], "sagepub": [5, 64], "sai": [1, 32, 50, 59], "said": [1, 36, 62], "same": [0, 1, 2, 31, 34, 37, 45, 48, 52, 59, 60, 61, 62, 71], "sampl": [61, 62], "sarcast": 48, "save": [0, 1, 2, 19, 64, 67], "save_featur": 2, "sbert": [1, 28, 31, 34, 35, 36, 45, 46, 64, 65, 67], "scale": [42, 51], "school": [21, 62], "scienc": [29, 39, 62], "scientist": [61, 62], "score": [4, 5, 11, 12, 13, 15, 21, 24, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 45, 46, 47, 51, 53, 56, 57, 64, 65, 67, 73], "script": [1, 61], "sea": 1, "seamless": 62, "search": [19, 61], "second": [0, 1, 4, 34, 42, 58, 59], "second_person": 49, "secr": [18, 49, 64], "section": [1, 29, 61], "see": [0, 1, 2, 30, 34, 38, 41, 45, 46, 47, 55, 62, 71], "seek": [5, 62], "segment": [0, 19], "select": [2, 4, 23, 28, 36, 45, 66, 67, 68, 71, 72, 73], "self": 2, "semant": [31, 34, 35, 41], "send": [1, 37, 55], "sens": [5, 31, 54, 66], "sent": [1, 37, 64], "sentenc": [0, 1, 10, 15, 19, 20, 21, 33, 34, 35, 36, 42, 45, 46, 47, 48, 54, 56, 61, 67], "sentence_pad": 19, "sentence_split": 19, "sentence_to_train": 47, "sentencis": 19, "sentiment": [0, 1, 24, 31, 39, 42, 52, 56, 62, 64, 67], "separ": [1, 2, 19, 34, 51], "sepcifi": 1, "septemb": 40, "sequenc": [1, 59], "sequenti": 1, "seri": [12, 16, 23, 28, 42, 71, 73], "serv": 12, "set": [0, 1, 2, 13, 23, 34, 48, 59], "set_self_conv_data": 2, "sever": [1, 30, 41, 42, 48, 51, 56, 61], "shall": 54, "share": [31, 36, 37], "she": [30, 31, 36], "shift": 34, "shop": 62, "short": [55, 58], "shorter": [13, 40, 41, 42, 43], "should": [0, 1, 2, 4, 14, 23, 28, 29, 31, 36, 47, 48, 54, 61, 62, 65, 66, 67, 68, 69, 71, 72, 73], "shouldn": [31, 36], "show": 37, "showeth": 62, "shruti": [35, 45, 46, 47, 62], "side": 31, "signal": [45, 55], "signifi": 42, "signific": [1, 61], "silent": 37, "similar": [1, 6, 7, 13, 28, 29, 31, 34, 35, 36, 40, 45, 46, 49, 62, 65], "similarli": [1, 35], "simpl": [0, 1, 16, 19, 42, 61, 62], "simpli": [1, 5, 11, 28, 56, 62], "simplifi": 1, "simplist": 41, "sinc": [1, 32, 41, 71], "singh": 62, "singl": [0, 1, 2, 11, 12, 19, 23, 31, 34, 35, 36, 37, 41, 45, 46, 59, 62, 71, 72], "singular": [12, 41, 64], "site": 16, "situat": 37, "size": [1, 13, 63, 67], "skip": 1, "slightli": [32, 62, 63], "slow": 1, "small": 40, "so": [1, 2, 10, 30, 31, 36, 37, 50, 61, 62, 66], "social": [29, 39, 61, 62], "socsci": 16, "softwar": 62, "sohi": 62, "sol3": 4, "solut": 59, "solv": 62, "some": [0, 1, 11, 17, 29, 32, 34, 35, 37, 41, 61, 63], "somebodi": [31, 36], "someon": [22, 29, 31, 36, 47, 48, 61, 64], "someplac": [31, 36], "someth": 47, "sometim": 1, "somewhat": 35, "soon": 62, "sorri": [16, 32, 50], "sort": 10, "sound": [47, 51], "sourc": [4, 5, 6, 12, 13, 16, 17, 21, 34, 35, 50, 64, 68], "space": [34, 40, 71], "spaci": [1, 19, 47, 49, 50, 61], "span": 63, "spars": 32, "speak": [1, 31, 36, 37, 59, 60, 62], "speaker": [0, 1, 2, 6, 8, 9, 25, 31, 34, 35, 37, 38, 42, 45, 46, 61, 66, 71, 72], "speaker_id": [2, 61, 72], "speaker_id_col": [0, 1, 2, 6, 8, 9, 25, 26, 27, 61, 65, 66, 71, 72], "speaker_nicknam": [0, 1, 2, 6, 9, 59, 66, 71], "special": [0, 1, 2, 48, 71], "specif": [1, 2, 12, 32, 41, 48, 55, 61, 62, 69, 71], "specifi": [1, 2, 19, 47, 49, 67, 68, 71, 72, 73], "speciifc": 63, "spend": [51, 62], "spike": 55, "split": [19, 21, 43, 63], "spoke": 59, "spoken": [11, 37], "spread": 55, "squar": [13, 40], "ssrn": 4, "stabl": 40, "stack": 14, "stackoverflow": 68, "stage": [1, 2, 34, 71], "stamp": 55, "standard": [1, 4, 37, 40, 41, 49, 55, 58, 60, 65, 72, 73], "stanford": 70, "start": [0, 15, 19, 20, 22, 23, 50], "statement": [38, 42, 47, 48, 62, 64], "statist": [65, 66, 68], "statologi": 41, "stem": 42, "step": [1, 4, 28, 41, 45, 46, 51], "still": [41, 45, 46], "stochast": 40, "stop": [40, 62], "stopword": [13, 19], "store": [1, 12, 16, 41, 49, 51, 65, 67], "stoword": 42, "str": [2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 63, 64, 65, 66, 67, 68, 71, 72, 73], "straightforward": 29, "strategi": [17, 30, 32, 38, 39, 42, 49, 54, 64], "stream": 35, "strictli": 1, "string": [0, 1, 2, 4, 8, 12, 13, 14, 19, 23, 24, 50, 66, 67, 68, 71, 72, 73], "strongli": [1, 41, 61], "structur": [0, 36, 49], "student": [21, 33], "studi": [1, 34, 62], "style": [1, 31, 36, 59], "sub": [0, 1, 71], "subfold": 1, "subject": [5, 24, 39, 49, 64], "subjunct": 50, "sublist": 28, "submiss": 55, "subpart": [1, 71], "subsequ": [1, 30, 51, 58], "subset": 62, "substanc": 36, "substant": 31, "substanti": 1, "substr": 30, "subtask": 1, "subtract": [41, 58], "succe": 62, "success": [0, 1, 4, 31, 36, 43, 55, 58, 61], "suggest": [1, 13, 34, 42, 44, 50], "suit": [62, 64], "sum": [28, 34, 64, 65, 66, 72], "summar": [0, 1, 65, 66, 69], "summari": [65, 66, 72], "summariz": [0, 65], "summarize_featur": 69, "suppl": 6, "support": [1, 15, 61], "suppos": 1, "sure": 30, "swear": 49, "syllabl": 21, "syntax": [1, 32, 61], "system": [2, 59, 64], "t": [0, 1, 2, 15, 29, 31, 36, 45, 49, 54, 61, 62, 67], "tabl": 62, "tag": 39, "take": [1, 4, 5, 9, 14, 25, 29, 31, 34, 37, 39, 42, 55, 61, 65, 71], "taken": [59, 71], "talk": [1, 37, 47, 59, 62], "target": 15, "task": [1, 2, 59, 71], "tausczik": [12, 37, 41, 52], "tausczikpennebaker2013": 12, "team": [0, 1, 4, 11, 12, 13, 34, 39, 40, 59, 65], "team_bursti": 4, "team_comm_tool": [1, 61], "teamcommtool": 1, "technic": [29, 39, 61, 62], "teghxgbqdhgaaaaa": 5, "tempor": [0, 2, 55, 58, 64, 71], "temporal_featur": 11, "tend": [1, 34, 60], "term": [1, 28, 59], "termin": [1, 2, 61], "terribl": 51, "test": [13, 33, 47], "text": [0, 1, 2, 3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 28, 32, 33, 36, 42, 48, 55, 62, 64, 67, 71], "text_based_featur": 64, "textblob": [24, 39, 51, 52, 64], "textblob_sentiment_analysi": 11, "than": [0, 1, 2, 11, 13, 31, 34, 35, 36, 37, 40, 41, 45, 46, 54, 60, 62, 63], "thee": 62, "thei": [0, 1, 29, 31, 34, 36, 37, 39, 47, 58, 59, 61, 62, 67], "them": [1, 2, 19, 28, 29, 31, 36, 50, 51, 55, 59, 61, 62, 64, 65, 66, 67], "themselv": [31, 36, 60], "theoret": 35, "theori": [34, 50], "therefor": [0, 1, 11, 37, 45, 59, 62, 69], "thi": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 16, 18, 20, 21, 23, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 71, 72, 73], "thing": [48, 61], "think": [1, 38, 47], "thorough": [43, 62], "those": [1, 21, 31, 36, 61], "though": [34, 42], "thought": [1, 35, 45], "thread": [1, 61], "three": [0, 1, 22, 34, 37, 40, 51, 62, 69, 71], "threshold": [15, 47], "through": [1, 45, 46, 50, 61, 62], "throughout": [31, 35, 36, 40, 45, 46, 55, 63], "tht": 35, "thu": [1, 2, 34, 35, 36, 37, 46, 55, 71], "time": [0, 1, 4, 23, 34, 35, 39, 42, 48, 51, 55, 59, 61, 62, 63, 64, 65, 66, 71], "time_diff": 55, "timediff": 4, "timestamp": [0, 1, 2, 8, 23, 58, 61, 62, 63, 64, 71], "timestamp_col": [0, 1, 2, 8, 61, 63, 64, 65, 71], "timestamp_end": [1, 23, 61, 64], "timestamp_start": [1, 23, 61, 64], "todai": [34, 35, 41, 43, 45, 46, 47], "todo": 66, "togeth": [0, 62, 66], "token": [16, 19, 39, 49, 54, 64], "token_count": [19, 49], "too": [30, 31, 36, 62], "took": [1, 59], "tool": [1, 61, 62], "toolkit": [0, 1, 11, 42, 45, 46, 55, 62], "top": [1, 50, 59], "topic": [1, 13, 34, 40, 42, 43, 65], "tormala": 5, "total": [3, 12, 16, 25, 31, 34, 36, 37, 41, 44, 53, 59, 60, 62, 63, 64, 66, 72], "touch": [1, 61], "toward": [31, 36, 38, 42, 45, 46], "tradit": 49, "train": [1, 2, 15, 64], "train_spacy_n": 15, "transcript": 0, "transfom": [45, 46], "transform": [31, 34, 35, 36, 51], "transform_utter": 50, "treat": [1, 59, 61], "tri": [50, 64], "trivial": [3, 44, 62], "troubl": [1, 61], "true": [0, 1, 2, 37, 61, 63, 67, 71], "truncat": 2, "truth_intensifi": 49, "ttr": 64, "tupl": [0, 1, 2, 15, 19, 64], "turn": [0, 1, 2, 25, 28, 31, 32, 37, 39, 61, 64, 65, 71], "turn_count": 59, "turn_df": 71, "turn_id": 71, "turn_taking_featur": 11, "twice": 63, "twitter": 51, "two": [0, 1, 2, 23, 31, 34, 36, 41, 45, 46, 52, 62, 63], "txt": 19, "type": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 37, 39, 52, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "typic": [1, 34, 40, 41, 42, 52, 60], "u": [1, 22, 31, 36, 48, 49, 58, 61], "uci": 16, "uh": [31, 36], "ulrich": 55, "um": [31, 36, 60], "umbrella": [8, 29, 34], "uncertain": [5, 30], "uncertainti": 30, "under": [0, 1, 10, 11, 12, 28, 40], "underli": 1, "underscor": [1, 61], "understand": [0, 33, 39, 43, 48, 58, 61, 62], "understood": 33, "uninterrupt": 59, "uniqu": [0, 1, 2, 6, 9, 13, 16, 23, 25, 41, 47, 52, 60, 61, 63, 71], "univers": 62, "unix": 58, "unless": [31, 36], "unpack": 62, "unpreprocess": 0, "until": [31, 36, 45, 46], "unzip": [1, 61], "up": [1, 17, 21, 28, 31, 35, 36, 37, 45, 46, 51, 59, 61], "updat": [1, 9, 40, 54, 61], "upenn": 1, "upload": 13, "upon": 33, "upper": 42, "us": [0, 1, 2, 3, 5, 11, 12, 13, 14, 17, 19, 24, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 60, 62, 64, 65, 66, 67, 71], "usag": [21, 24], "use_time_if_poss": 63, "user": [0, 1, 2, 9, 15, 22, 37, 47, 48, 51, 61, 62, 63, 64, 65, 66, 69, 72], "user_data": [2, 65, 66], "user_df": 9, "user_level_featur": 2, "user_list": 9, "userlevelfeaturescalcul": [2, 66, 69], "usernam": [22, 48], "utf": 1, "util": [12, 21, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "utilti": 62, "utter": [0, 1, 2, 3, 4, 5, 13, 14, 15, 16, 17, 20, 21, 23, 24, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 54, 58, 60, 61, 67], "v": [0, 13], "v0": 0, "valenc": 51, "valid": [23, 55], "valu": [1, 2, 5, 6, 10, 12, 13, 18, 19, 23, 28, 30, 31, 34, 36, 37, 40, 41, 42, 45, 46, 47, 55, 59, 64, 68, 71, 72, 73], "vari": [13, 31, 34, 35, 42], "variabl": [1, 56, 57, 64, 65, 66], "varianc": [8, 34], "variance_in_dd": 11, "variat": [4, 32], "varieti": [42, 62], "variou": [19, 42, 64, 65, 66], "vast": 62, "ve": [0, 31, 36, 50, 61], "vec": 6, "vect_data": [7, 8, 28, 64, 65, 66], "vect_path": 67, "vector": [0, 1, 2, 6, 7, 8, 13, 28, 34, 35, 40, 55, 61, 64, 65, 67], "vector_data": [1, 61], "vector_directori": [0, 1, 2, 61, 65], "vein": 45, "verb": [19, 31, 36], "verbal": 32, "veri": [5, 30, 31, 34, 35, 36, 42, 49, 54], "verifi": 2, "verit": 62, "version": [1, 12, 14, 21, 40, 51, 61], "versu": [4, 29, 47, 55, 59], "via": [3, 44], "view": 50, "visit": 41, "voila": 62, "w": 31, "wa": [0, 1, 2, 5, 12, 31, 32, 35, 36, 47, 51, 56, 59, 62, 71], "wai": [1, 2, 29, 30, 31, 32, 34, 49, 50, 54, 56, 57, 61, 62, 66], "waiai": 62, "wait": [4, 55], "walk": 1, "walkthrough": [0, 61, 62], "want": [1, 28, 34, 59, 61, 62, 67], "warn": 50, "watt": [1, 2, 62, 71], "we": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 14, 15, 16, 18, 23, 24, 28, 29, 30, 31, 34, 35, 36, 37, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59, 61, 62, 66, 67, 71], "web": 70, "week": 47, "weight": 66, "welcom": 61, "well": [29, 31, 36, 55, 62], "went": 41, "were": [1, 12, 31, 36], "western": 1, "wh": [19, 31, 36], "wh_question": [32, 49, 54], "wharton": 62, "what": [1, 2, 12, 16, 20, 29, 31, 32, 34, 35, 36, 39, 41, 45, 46, 47, 50, 54, 62, 63], "whatev": [1, 31, 36], "wheel": 62, "when": [1, 16, 20, 31, 33, 36, 47, 54, 55, 59, 60, 61, 62, 69, 71], "whenev": 71, "where": [0, 1, 2, 19, 20, 28, 31, 32, 36, 37, 40, 41, 42, 48, 50, 51, 54, 59, 61, 65, 68, 73], "wherea": [31, 34, 35, 36, 43], "wherev": [31, 36], "whether": [1, 2, 10, 16, 19, 32, 37, 38, 41, 43, 47, 57, 58, 62, 63, 64, 67, 71], "which": [0, 1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 23, 25, 28, 31, 34, 35, 36, 37, 38, 40, 41, 42, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 64, 66, 68, 69, 71, 72, 73], "while": [31, 32, 34, 36, 37, 44, 45, 46, 55, 62, 71], "whitespac": 43, "who": [20, 31, 32, 36, 47, 51, 54, 59, 60, 62], "whole": [28, 59, 62, 71], "whom": [31, 36, 54], "whose": [31, 36, 54], "why": [20, 29, 31, 36, 54], "wide": 31, "wien": 62, "wiki": [21, 29, 70], "wikipedia": [21, 33, 37, 70], "williamson": 60, "wish": [1, 2, 18], "within": [0, 1, 2, 8, 11, 16, 30, 34, 35, 36, 41, 45, 46, 52, 55, 59, 60, 62, 63, 64, 68, 71, 73], "within_group": 2, "within_person_discursive_rang": 11, "within_task": [0, 1, 2, 71], "without": [1, 19, 31, 36, 42, 47, 54, 62, 69], "won": [0, 31, 36, 45], "wonder": 56, "woolei": 4, "woollei": [13, 40, 55], "wooten": 55, "word": [3, 10, 11, 12, 13, 14, 16, 19, 20, 21, 22, 28, 30, 32, 33, 37, 38, 39, 40, 41, 43, 45, 46, 48, 49, 52, 53, 54, 56, 57, 62, 64, 65, 66, 69, 70], "word_mimicri": 11, "word_start": [19, 49], "wordnet": [1, 61], "words_in_lin": 19, "work": [0, 47, 50, 55, 61, 62], "world": 55, "worri": 62, "would": [1, 29, 31, 34, 35, 36, 37, 42, 50, 54, 62], "wouldn": [31, 36], "wow": 50, "wp": 13, "write": [2, 29, 60], "www": [12, 13, 14, 18, 41, 64], "x": [0, 1, 2, 4, 46, 68], "xinlan": 62, "yashveer": 62, "ye": 19, "yeah": [31, 36], "yeoman": [14, 18, 42, 49], "yesno_quest": [32, 49, 54], "yet": 48, "ylatau": 12, "you": [0, 1, 2, 11, 24, 29, 31, 36, 37, 43, 47, 50, 59, 61, 62, 69], "your": [0, 29, 31, 32, 36, 37, 50, 59, 61, 62], "yourself": [31, 36, 50], "yuluan": 62, "yup": [31, 36], "yuxuan": 62, "z": [12, 39, 49, 51, 64, 73], "zero": [13, 52], "zhang": 62, "zheng": 62, "zhong": 62, "zhou": 62, "zscore": 41, "zscore_chat": 41, "zscore_chats_and_convers": 69, "zscore_convers": 41, "\u00bc": 47, "\u03c4": 55}, "titles": ["The Basics", "Worked Example", "feature_builder module", "basic_features module", "burstiness module", "certainty module", "discursive_diversity module", "fflow module", "get_all_DD_features module", "get_user_network module", "hedge module", "Features: Technical Documentation", "info_exchange_zscore module", "information_diversity module", "lexical_features_v2 module", "named_entity_recognition_features module", "other_lexical_features module", "politeness_features module", "politeness_v2 module", "politeness_v2_helper module", "question_num module", "readability module", "reddit_tags module", "temporal_features module", "textblob_sentiment_analysis module", "turn_taking_features module", "variance_in_DD module", "within_person_discursive_range module", "word_mimicry module", "FEATURE NAME", "Certainty", "Content Word Accommodation", "Conversational Repair", "Dale-Chall Score", "Discursive Diversity", "Forward Flow", "Function Word Accommodation", "Gini Coefficient", "Hedge", "Features: Conceptual Documentation", "Information Diversity", "Information Exchange", "Linguistic Inquiry and Word Count (LIWC) and Other Lexicons", "Message Length", "Message Quantity", "Mimicry (BERT)", "Moving Mimicry", "Named Entity Recognition", "Online Discussion Tags", "Politeness/Receptiveness Markers", "Politeness Strategies", "Sentiment (RoBERTa)", "Positivity Z-Score", "Proportion of First Person Pronouns", "Question (Naive)", "Team Burstiness", "Textblob Polarity", "Textblob Subjectivity", "Time Difference", "Turn Taking Index", "Word Type-Token Ratio", "The Team Communication Toolkit", "Introduction", "assign_chunk_nums module", "calculate_chat_level_features module", "calculate_conversation_level_features module", "calculate_user_level_features module", "check_embeddings module", "gini_coefficient module", "Utilities", "preload_word_lists module", "preprocess module", "summarize_features module", "zscore_chats_and_conversation module"], "titleterms": {"A": 0, "One": 0, "The": [0, 61, 62], "accommod": [31, 36], "addit": 1, "advanc": 1, "assign_chunk_num": 63, "assumpt": 0, "basic": [0, 1, 29, 30, 31, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59, 60], "basic_featur": 3, "bert": 45, "bursti": [4, 55], "calculate_chat_level_featur": 64, "calculate_conversation_level_featur": 65, "calculate_user_level_featur": 66, "caveat": [29, 30, 31, 33, 34, 35, 36, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59], "certainti": [5, 30], "chall": 33, "chat": [11, 39], "check_embed": 67, "citat": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "class": 69, "code": [0, 1], "coeffici": 37, "column": 1, "commun": 61, "conceptu": 39, "configur": 1, "consider": 1, "content": [31, 61], "convers": [11, 32, 39, 62, 69], "count": [42, 59], "customiz": 0, "dale": 33, "data": 1, "demo": [0, 1], "differ": 58, "discurs": 34, "discursive_divers": 6, "discuss": 48, "divers": [34, 40], "document": [11, 39, 62], "driver": 69, "entiti": 47, "environ": [1, 61], "exampl": [1, 41, 47], "exchang": 41, "featur": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 69], "feature_build": 2, "featurebuild": [1, 62], "fflow": 7, "file": [30, 34, 35, 45, 46, 47, 51], "first": 53, "flow": 35, "forward": 35, "function": [0, 36], "gener": 62, "get": [1, 61, 62], "get_all_dd_featur": 8, "get_user_network": 9, "gini": 37, "gini_coeffici": 68, "hedg": [10, 38], "high": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "implement": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "import": [1, 61], "index": 59, "indic": 61, "info_exchange_zscor": 12, "inform": [40, 41], "information_divers": 13, "input": [1, 34], "inquiri": 42, "interpret": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "introduct": 62, "intuit": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "kei": 0, "length": 43, "level": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 69], "lexical_features_v2": 14, "lexicon": 42, "light": 0, "linguist": 42, "liwc": 42, "marker": 49, "messag": [43, 44], "mimicri": [45, 46], "modul": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "motiv": 62, "move": 46, "naiv": 54, "name": [29, 47], "named_entity_recognition_featur": 15, "note": [29, 30, 31, 33, 34, 35, 36, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59], "onlin": 48, "other": [42, 69], "other_lexical_featur": 16, "ouput": 34, "our": 62, "output": [30, 35, 45, 46, 47, 51], "packag": [0, 1, 61], "paramet": 0, "person": 53, "pip": [1, 61], "polar": 56, "polit": [49, 50], "politeness_featur": 17, "politeness_v2": 18, "politeness_v2_help": 19, "posit": 52, "preload_word_list": 70, "preprocess": 71, "pronoun": 53, "proport": 53, "quantiti": 44, "question": 54, "question_num": 20, "ratio": 60, "readabl": 21, "recept": 49, "recognit": 47, "recommend": [1, 61], "reddit_tag": 22, "relat": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "repair": 32, "roberta": 51, "run": 1, "sampl": [0, 1], "score": [33, 41, 52], "sentiment": 51, "speaker": [11, 59, 62, 69], "start": [1, 61, 62], "strategi": 50, "subject": 57, "summarize_featur": 72, "tabl": 61, "tag": 48, "take": 59, "team": [55, 61, 62], "technic": 11, "temporal_featur": 23, "textblob": [56, 57], "textblob_sentiment_analysi": 24, "time": 58, "token": 60, "toolkit": 61, "touch": 0, "train": 47, "troubleshoot": [1, 61], "turn": 59, "turn_taking_featur": 25, "type": 60, "us": 61, "user": 11, "util": 69, "utter": [11, 39, 62, 69], "variance_in_dd": 26, "virtual": [1, 61], "walkthrough": 1, "within_person_discursive_rang": 27, "word": [31, 36, 42, 60], "word_mimicri": 28, "work": 1, "your": 1, "z": [41, 52], "zscore_chats_and_convers": 73}}) \ No newline at end of file diff --git a/docs/build/html/utils/check_embeddings.html b/docs/build/html/utils/check_embeddings.html index 8f98f7b0..ba19ea73 100644 --- a/docs/build/html/utils/check_embeddings.html +++ b/docs/build/html/utils/check_embeddings.html @@ -132,7 +132,7 @@
-utils.check_embeddings.generate_bert(chat_data, output_path, message_col)
+utils.check_embeddings.generate_bert(chat_data, output_path, message_col, batch_size=64)

Generates RoBERTa sentiment scores for the given chat data and saves them to a CSV file.

Parameters:
@@ -140,6 +140,7 @@
  • chat_data (pd.DataFrame) – Contains message data to be analyzed for sentiments.

  • output_path (str) – Path to save the CSV file containing sentiment scores.

  • message_col (str, optional) – A string representing the column name that should be selected as the message. Defaults to “message”.

  • +
  • batch_size (int) – The size of each batch for processing sentiment analysis. Defaults to 64.

  • Raises:
    @@ -224,17 +225,17 @@
    -utils.check_embeddings.get_sentiment(text)
    -

    Analyzes the sentiment of the given text using a BERT model and returns the scores for positive, negative, and neutral sentiments.

    +utils.check_embeddings.get_sentiment(texts) +

    Analyzes the sentiment of the given list of texts using a BERT model and returns a DataFrame with scores for positive, negative, and neutral sentiments.

    Parameters:
    -

    text (str or None) – The input text to analyze.

    +

    texts (list of str) – The list of input texts to analyze.

    Returns:
    -

    A dictionary with sentiment scores.

    +

    A DataFrame with sentiment scores.

    Return type:
    -

    dict

    +

    pd.DataFrame

    diff --git a/docs/source/basics.rst b/docs/source/basics.rst index 6f5d1c9e..9409d48f 100644 --- a/docs/source/basics.rst +++ b/docs/source/basics.rst @@ -49,6 +49,10 @@ Package Assumptions 8. **Vector Data Cache**: Your data's vector data will be cached in **vector_directory**. This directory will be created if it doesn’t exist, but its contents should be reserved for cached vector files. + * Note: v0.1.3 and earlier compute vectors using _preprocessed_ text by default, which drops capitalization and punctuation. However, this can affect the interpretation of sentiment vectors; for example, "Hello!" has more positive sentiment than "hello." Consequently, from v0.1.4 onwards, we compute vectors using the raw input text, including punctuation and capitalization. To restore this behavior, please set **compute_vectors_from_preprocessed** to True. + + * Additionally, we assume that empty messages are equivalent to "NaN vector," defined `here `_. + 9. **Output Files**: We generate three outputs: **output_file_path_chat_level** (Utterance- or Chat-Level Features), **output_file_path_user_level** (Speaker- or User-Level Features), and **output_file_path_conv_level** (Conversation-Level Features). * This should be a *path*, not just a filename. For example, "./my_file.csv", not just "my_file.csv." @@ -79,4 +83,6 @@ Here are some parameters that can be customized. For more details, refer to the 4. **ner_training_df** and **ner_cutoff**: Measure the number of named entities in each utterance (see :ref:`named_entity_recognition`). -5. **regenerate_vectors**: Force-regenerate vector data even if it already exists. \ No newline at end of file +5. **regenerate_vectors**: Force-regenerate vector data even if it already exists. + +6. **compute_vectors_from_preprocessed**: Computes vectors using preprocessed text (that is, with capitalization and punctuation removed). This was the default behavior for v.0.1.3 and earlier, but we now default to computing metrics on the unpreprocessed text (which INCLUDES capitalization and punctuation), and this parameter now defaults to False. \ No newline at end of file diff --git a/docs/source/examples.rst b/docs/source/examples.rst index 8d4e89e1..b65bc187 100644 --- a/docs/source/examples.rst +++ b/docs/source/examples.rst @@ -90,7 +90,7 @@ Now we are ready to call the FeatureBuilder on our data. All we need to do is de output_file_path_conv_level = "./jury_output_conversation_level.csv", turns = True ) - jury_feature_builder.featurize(col="message") + jury_feature_builder.featurize() Basic Input Columns ^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/source/index.rst b/docs/source/index.rst index e3a9e994..f17dbd8b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -76,7 +76,7 @@ Once you import the tool, you will be able to declare a FeatureBuilder object, w ) # this line of code runs the FeatureBuilder on your data - my_feature_builder.featurize(col="message") + my_feature_builder.featurize() Use the Table of Contents below to learn more about our tool. We recommend that you begin in the "Introduction" section, then explore other sections of the documentation as they become relevant to you. We recommend reading :ref:`basics` for a high-level overview of the requirements and parameters, and then reading through the :ref:`examples` for a detailed walkthrough and discussion of considerations. diff --git a/examples/featurize.py b/examples/featurize.py index cb751e6f..f4288fe8 100644 --- a/examples/featurize.py +++ b/examples/featurize.py @@ -45,9 +45,14 @@ output_file_path_chat_level = "./jury_TINY_output_chat_level.csv", output_file_path_user_level = "./jury_TINY_output_user_level.csv", output_file_path_conv_level = "./jury_TINY_output_conversation_level.csv", - turns = False + turns = False, + custom_features = [ + "(BERT) Mimicry", + "Moving Mimicry", + "Forward Flow", + "Discursive Diversity"] ) - tiny_juries_feature_builder.featurize(col="message") + tiny_juries_feature_builder.featurize() # Tiny multi-task tiny_multi_task_feature_builder = FeatureBuilder( @@ -59,21 +64,26 @@ output_file_path_conv_level = "./multi_task_TINY_output_conversation_level_stageId_cumulative.csv", turns = False ) - tiny_multi_task_feature_builder.featurize(col="message") + tiny_multi_task_feature_builder.featurize() # FULL DATASETS BELOW ------------------------------------- # # Juries # jury_feature_builder = FeatureBuilder( # input_df = juries_df, - # grouping_keys = ["batch_num", "round_num"], + # grouping_keys = ["batch_num", "round_num"], # vector_directory = "./vector_data/", # output_file_path_chat_level = "./jury_output_chat_level.csv", # output_file_path_user_level = "./jury_output_user_level.csv", # output_file_path_conv_level = "./jury_output_conversation_level.csv", - # turns = True + # turns = True, + # custom_features = [ + # "(BERT) Mimicry", + # "Moving Mimicry", + # "Forward Flow", + # "Discursive Diversity"] # ) - # jury_feature_builder.featurize(col="message") + # jury_feature_builder.featurize() # # CSOP (Abdullah) # csop_feature_builder = FeatureBuilder( @@ -84,7 +94,7 @@ # output_file_path_conv_level = "./csop_output_conversation_level.csv", # turns = True # ) - # csop_feature_builder.featurize(col="message") + # csop_feature_builder.featurize() # # CSOP II (Nak Won Rim) @@ -96,4 +106,4 @@ # output_file_path_conv_level = "./csopII_output_conversation_level.csv", # turns = True # ) - # csopII_feature_builder.featurize(col="message") + # csopII_feature_builder.featurize() diff --git a/pyproject.toml b/pyproject.toml index d13448e3..229cd3c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" [project] name = "team_comm_tools" -version = "0.1.3" +version = "0.1.4" requires-python = ">= 3.10" dependencies = [ "chardet>=3.0.4", @@ -36,6 +36,7 @@ dependencies = [ "torchaudio==2.4.1", "torchvision==0.19.1", "transformers==4.44.0", + "tqdm>=4.66.5", "tzdata>=2023.3", "tzlocal==5.2" ] diff --git a/requirements.txt b/requirements.txt index ce9b755c..3c570b21 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,5 +25,6 @@ torch==2.4.1 torchaudio==2.4.1 torchvision==0.19.1 transformers==4.44.0 +tqdm>=4.66.5 tzdata>=2023.3 tzlocal==5.2 diff --git a/src/team_comm_tools/feature_builder.py b/src/team_comm_tools/feature_builder.py index 54fced50..84a08631 100644 --- a/src/team_comm_tools/feature_builder.py +++ b/src/team_comm_tools/feature_builder.py @@ -85,6 +85,9 @@ class FeatureBuilder: :param regenerate_vectors: If true, will regenerate vector data even if it already exists. Defaults to False. :type regenerate_vectors: bool, optional + :param compute_vectors_from_preprocessed: If true, computes vectors using preprocessed text (that is, with capitalization and punctuation removed). This was the default behavior for v.0.1.3 and earlier, but we now default to computing metrics on the unpreprocessed text (which INCLUDES capitalization and punctuation). Defaults to False. + :type compute_vectors_from_preprocessed: bool, optional + :return: The FeatureBuilder doesn't return anything; instead, it writes the generated features to files in the specified paths. It will also print out its progress, so you should see "All Done!" in the terminal, which will indicate that the features have been generated. :rtype: None @@ -108,7 +111,8 @@ def __init__( within_task = False, ner_training_df: pd.DataFrame = None, ner_cutoff: int = 0.9, - regenerate_vectors: bool = False + regenerate_vectors: bool = False, + compute_vectors_from_preprocessed: bool = False ) -> None: # Defining input and output paths. @@ -116,6 +120,7 @@ def __init__( self.orig_data = input_df.copy() self.ner_training = ner_training_df self.vector_directory = vector_directory + print("Initializing Featurization...") self.output_file_path_conv_level = output_file_path_conv_level self.output_file_path_user_level = output_file_path_user_level @@ -218,6 +223,11 @@ def __init__( self.ner_cutoff = ner_cutoff self.regenerate_vectors = regenerate_vectors + if(compute_vectors_from_preprocessed == True): + self.vector_colname = self.message_col # because the message col will eventually get preprocessed + else: + self.vector_colname = self.message_col + "_original" # because this contains the original message + # check grouping rules if self.conversation_id_col not in self.chat_data.columns and len(self.grouping_keys)==0: if(self.conversation_id_col == "conversation_num"): @@ -240,7 +250,7 @@ def __init__( # set new identifier column for cumulative grouping. if self.cumulative_grouping and len(grouping_keys) == 3: - print("NOTE: User has requested cumulative grouping. Auto-generating the key `conversation_num` as the conversation identifier for cumulative convrersations.") + print("NOTE: User has requested cumulative grouping. Auto-generating the key `conversation_num` as the conversation identifier for cumulative conversations.") self.conversation_id_col = "conversation_num" # Input columns are the columns that come in the raw chat data @@ -338,7 +348,7 @@ def __init__( if(not need_sentiment and feature_dict[feature]["bert_sentiment_data"]): need_sentiment = True - check_embeddings(self.chat_data, self.vect_path, self.bert_path, need_sentence, need_sentiment, self.regenerate_vectors, self.message_col) + check_embeddings(self.chat_data, self.vect_path, self.bert_path, need_sentence, need_sentiment, self.regenerate_vectors, message_col = self.vector_colname) if(need_sentence): self.vect_data = pd.read_csv(self.vect_path, encoding='mac_roman') @@ -401,7 +411,7 @@ def merge_conv_data_with_original(self) -> None: if {'index'}.issubset(self.conv_data.columns): self.conv_data = self.conv_data.drop(columns=['index']) - def featurize(self, col: str="message") -> None: + def featurize(self) -> None: """ Main driver function for feature generation. @@ -410,9 +420,6 @@ def featurize(self, col: str="message") -> None: conversation-level features. Finally, the features are saved into the designated output files. - :param col: Column to preprocess, defaults to "message" - :type col: str, optional - :return: None :rtype: None """ @@ -494,7 +501,7 @@ def preprocess_chat_data(self) -> None: # create new column that retains punctuation self.chat_data["message_lower_with_punc"] = self.chat_data[self.message_col].astype(str).apply(preprocess_text_lowercase_but_retain_punctuation) - # Preprocessing the text in `col` and then overwriting the column `col`. + # Preprocessing the text in `message_col` and then overwriting the column `message_col`. # TODO: We should probably use classes to abstract preprocessing module as well? self.chat_data[self.message_col] = self.chat_data[self.message_col].astype(str).apply(preprocess_text) diff --git a/src/team_comm_tools/utils/calculate_chat_level_features.py b/src/team_comm_tools/utils/calculate_chat_level_features.py index 52c73465..f1f5e06a 100644 --- a/src/team_comm_tools/utils/calculate_chat_level_features.py +++ b/src/team_comm_tools/utils/calculate_chat_level_features.py @@ -20,6 +20,9 @@ from .preload_word_lists import * from .zscore_chats_and_conversation import get_zscore_across_all_chats, get_zscore_across_all_conversations +# Loading bar +from tqdm import tqdm + class ChatLevelFeaturesCalculator: """ Initialize variables and objects used by the ChatLevelFeaturesCalculator class. @@ -74,7 +77,7 @@ def calculate_chat_level_features(self, feature_methods: list) -> pd.DataFrame: :rtype: pd.DataFrame """ - for method in feature_methods: + for method in tqdm(feature_methods): method(self) # Return the input dataset with the chat level features appended (as columns) diff --git a/src/team_comm_tools/utils/check_embeddings.py b/src/team_comm_tools/utils/check_embeddings.py index 602f42ee..2c56b3b6 100644 --- a/src/team_comm_tools/utils/check_embeddings.py +++ b/src/team_comm_tools/utils/check_embeddings.py @@ -4,6 +4,7 @@ import os import pickle +from tqdm import tqdm from pathlib import Path import torch @@ -179,14 +180,17 @@ def generate_vect(chat_data, output_path, message_col): print(f"Generating SBERT sentence vectors...") - embedding_arr = [row.tolist() for row in model_vect.encode(chat_data[message_col])] + # Ensure empty strings are encoded as NaN + empty_to_nan = [text if text and text.strip() else np.nan for text in chat_data[message_col].tolist()] + embeddings = model_vect.encode(empty_to_nan) + embedding_arr = [row.tolist() for row in tqdm(embeddings, total=len(chat_data[message_col]))] embedding_df = pd.DataFrame({'message': chat_data[message_col], 'message_embedding': embedding_arr}) # Create directories along the path if they don't exist Path(output_path).parent.mkdir(parents=True, exist_ok=True) embedding_df.to_csv(output_path, index=False) -def generate_bert(chat_data, output_path, message_col): +def generate_bert(chat_data, output_path, message_col, batch_size=64): """ Generates RoBERTa sentiment scores for the given chat data and saves them to a CSV file. @@ -196,42 +200,60 @@ def generate_bert(chat_data, output_path, message_col): :type output_path: str :param message_col: A string representing the column name that should be selected as the message. Defaults to "message". :type message_col: str, optional + :param batch_size: The size of each batch for processing sentiment analysis. Defaults to 64. + :type batch_size: int :raises FileNotFoundError: If the output path is invalid. :return: None :rtype: None """ print(f"Generating RoBERTa sentiments...") - messages = chat_data[message_col] - sentiments = messages.apply(get_sentiment) + messages = chat_data[message_col].tolist() + batch_sentiments_df = pd.DataFrame() - sent_arr = [list(dict.values()) for dict in sentiments] + for i in tqdm(range(0, len(messages), batch_size)): + batch = messages[i:i + batch_size] + batch_df = get_sentiment(batch) + batch_sentiments_df = pd.concat([batch_sentiments_df, batch_df], ignore_index=True) - sent_df = pd.DataFrame(sent_arr, columns =['positive_bert', 'negative_bert', 'neutral_bert']) - # Create directories along the path if they don't exist Path(output_path).parent.mkdir(parents=True, exist_ok=True) - sent_df.to_csv(output_path, index=False) + batch_sentiments_df.to_csv(output_path, index=False) -def get_sentiment(text): +def get_sentiment(texts): """ - Analyzes the sentiment of the given text using a BERT model and returns the scores for positive, negative, and neutral sentiments. + Analyzes the sentiment of the given list of texts using a BERT model and returns a DataFrame with scores for positive, negative, and neutral sentiments. - :param text: The input text to analyze. - :type text: str or None - :return: A dictionary with sentiment scores. - :rtype: dict + :param texts: The list of input texts to analyze. + :type texts: list of str + :return: A DataFrame with sentiment scores. + :rtype: pd.DataFrame """ - if (pd.isnull(text)): - return({'positive': np.nan, 'negative': np.nan, 'neutral': np.nan}) - - text = ' '.join(text.split()[:512]) # handle cases when the text is too long: just take the first 512 chars (hacky, but BERT context window cannot be changed) - encoded = tokenizer(text, return_tensors='pt') + # Handle and tokenize non-null and non-empty texts + texts_series = pd.Series(texts) + non_null_non_empty_texts = texts_series[texts_series.apply(lambda x: pd.notnull(x) and x.strip() != '')].tolist() + + if not non_null_non_empty_texts: + # Return a DataFrame with NaN if there are no valid texts to process + return pd.DataFrame(np.nan, index=texts_series.index, columns=['positive_bert', 'negative_bert', 'neutral_bert']) + + encoded = tokenizer(non_null_non_empty_texts, padding=True, truncation=True, max_length=512, return_tensors='pt') output = model_bert(**encoded) - scores = output[0][0].detach().numpy() - scores = softmax(scores) + scores = output[0].detach().numpy() + scores = softmax(scores, axis=1) + + sent_dict = { + 'positive_bert': scores[:, 2], + 'negative_bert': scores[:, 0], + 'neutral_bert': scores[:, 1] + } + + non_null_sent_df = pd.DataFrame(sent_dict) + + # Initialize the DataFrame such that null texts and empty texts get np.nan + sent_df = pd.DataFrame(np.nan, index=texts_series.index, columns=['positive_bert', 'negative_bert', 'neutral_bert']) + sent_df.loc[texts_series.apply(lambda x: pd.notnull(x) and x.strip() != ''), ['positive_bert', 'negative_bert', 'neutral_bert']] = non_null_sent_df.values - # sample output format - return({'positive': scores[2], 'negative': scores[0], 'neutral': scores[1]}) \ No newline at end of file + return sent_df \ No newline at end of file diff --git a/tests/data/cleaned_data/test_vector_edge_cases.csv b/tests/data/cleaned_data/test_vector_edge_cases.csv new file mode 100644 index 00000000..0659f844 --- /dev/null +++ b/tests/data/cleaned_data/test_vector_edge_cases.csv @@ -0,0 +1,6 @@ +conversation_num,speaker_nickname,message +1,A,"Once upon a time in the bustling city of Byteville, there was a young programmer named Alex who had a passion for coding. Alex loved the feeling of creating something out of nothing, of transforming ideas into functional software that could help people in their daily lives. Byteville was a city that thrived on technology, and programmers like Alex were considered artisans of the modern age. Alex had always been intrigued by the possibilities of coding, but there was one lesson that stood out more than any other during their journey: the paramount importance of testing code. In the early days of Alex's career, they were eager to dive straight into writing code. The thrill of seeing their ideas come to life was intoxicating, and Alex quickly built a reputation for developing features at a swift pace. However, this rapid development came at a cost. Despite the initial excitement, Alex found that their code often contained bugs, leading to frequent crashes and frustrated users. It was a humbling experience, and Alex realized that there was more to being a great programmer than just writing code. One day, Alex was working on a project for a new client. The client had requested a complex application that promised to revolutionize the way people managed their daily tasks. Excitement coursed through Alex's veins, and they threw themselves into the project with gusto. Hours turned into days, and days into weeks, as Alex painstakingly coded every feature that the client had envisioned. Finally, the day came when Alex was ready to present the finished product. The client gathered their team to witness the unveiling, and Alex began the demonstration with confidence. But soon, things started to go awry. Buttons that were supposed to trigger specific actions did nothing. Data that was meant to be saved was lost. The application crashed multiple times, leaving the client and their team frustrated and unimpressed. Alex felt a pang of embarrassment and disappointment. After the failed presentation, Alex decided to seek advice from an experienced programmer named Maya, who was known for her meticulous and bug-free code. Maya had been in the industry for many years and had a wealth of knowledge about best practices in software development. Alex visited Maya's office, and after explaining the situation, Maya nodded knowingly. 'Alex,' she said gently, 'coding is both an art and a science. While your enthusiasm and creativity are wonderful, you must also embrace the discipline of testing. Testing your code is essential to ensure that it functions as intended and to deliver a reliable product to your users.' Maya spent the next several hours teaching Alex about different types of testing. They covered unit testing, which involves testing individual components of the code to ensure they work correctly. They delved into integration testing, where multiple components are tested together to ensure they function seamlessly as a whole. Maya also explained the importance of system testing, where the entire application is tested in an environment that simulates real-world usage. She emphasized the value of automated testing frameworks, which could run tests repeatedly, catch regressions, and provide quick feedback during the development process. Alex began to see testing in a new light. It wasn't just an afterthought or a tedious chore; it was an integral part of the development cycle that could make the difference between a functional, reliable application and a buggy, frustrating one. Inspired by Maya's wisdom, Alex returned to their project with renewed determination. They wrote unit tests for every component, ensuring that each piece of the codebase was robust and free from errors. They created integration tests to check how well different parts of the application worked together. Finally, they conducted system tests to simulate how users would interact with the application in the real world. The process was time-consuming, but Alex quickly discovered that it was worth every minute. The tests caught several issues that would have otherwise slipped through the cracks, and Alex was able to fix these problems before they reached the client. The application became more stable, reliable, and user-friendly. When the time came for the second presentation, Alex stood before the client with newfound confidence. The application ran smoothly, every feature working as intended. The client and their team were impressed, and Alex couldn't help but feel a sense of pride and accomplishment. This was the result of not just hard work, but also a commitment to quality through thorough testing. Word of Alex's successful project spread throughout Byteville, and soon, other programmers and clients began to take notice. Alex became an advocate for the importance of testing code, sharing the lessons they had learned with anyone willing to listen. Testing became a mantra not just for Alex, but for a new generation of programmers who understood that excellence in coding wasn't just about rapid development but also about ensuring reliability and functionality. From that day forward, Alex continued to create innovative applications, each one meticulously tested to ensure it met the highest standards of quality. Byteville thrived on these advancements, and the city's residents knew that whatever challenges lay ahead, they could rely on the software created by dedicated programmers like Alex. And so, the story of Alex and the importance of testing code became a legend in Byteville, a timeless reminder that behind every great line of code is the diligent effort to make sure it works flawlessly." +1,B,This is a much shorter message. +2,B,:-) +2,A, +2,A, \ No newline at end of file diff --git a/tests/run_package_grouping_tests.py b/tests/run_package_grouping_tests.py index 9fefd43a..6df66cc1 100644 --- a/tests/run_package_grouping_tests.py +++ b/tests/run_package_grouping_tests.py @@ -34,7 +34,7 @@ output_file_path_conv_level = "./tiny_multi_task_PT1_level_conv", turns = False, ) - testing_package_task_1.featurize(col="message") + testing_package_task_1.featurize() """ Testing Package Task 1 Advanced Features @@ -64,9 +64,9 @@ output_file_path_chat_level = "./output/chat/tiny_multi_task_case2_level_chat.csv", output_file_path_user_level = "./output/user/tiny_multi_task_case2_level_user.csv", output_file_path_conv_level = "./output/conv/tiny_multi_task_case2_level_conv.csv", - turns = False, + turns = False ) - testing_case_2.featurize(col="message") + testing_case_2.featurize() print("TESTING CASE 3A .....") testing_case_3_a = FeatureBuilder( @@ -82,9 +82,9 @@ output_file_path_chat_level = "./output/chat/tiny_multi_task_case3a_level_chat.csv", output_file_path_user_level = "./output/user/tiny_multi_task_case3a_level_user.csv", output_file_path_conv_level = "./output/conv/tiny_multi_task_case3a_level_conv.csv", - turns = False, + turns = False ) - testing_case_3_a.featurize(col="message") + testing_case_3_a.featurize() print("TESTING CASE 3B .....") testing_case_3_b = FeatureBuilder( @@ -100,9 +100,9 @@ output_file_path_chat_level = "./output/chat/tiny_multi_task_case3b_level_chat.csv", output_file_path_user_level = "./output/user/tiny_multi_task_case3b_level_user.csv", output_file_path_conv_level = "./output/conv/tiny_multi_task_case3b_level_conv.csv", - turns = False, + turns = False ) - testing_case_3_b.featurize(col="message") + testing_case_3_b.featurize() print("TESTING CASE 3C .....") testing_case_3_c = FeatureBuilder( @@ -118,9 +118,9 @@ output_file_path_chat_level = "./output/chat/tiny_multi_task_case3c_level_chat.csv", output_file_path_user_level = "./output/user/tiny_multi_task_case3c_level_user.csv", output_file_path_conv_level = "./output/conv/tiny_multi_task_case3c_level_conv.csv", - turns = False, + turns = False ) - testing_case_3_c.featurize(col="message") + testing_case_3_c.featurize() print("TESTING IMPROPER CASE .....") testing_case_improper = FeatureBuilder( @@ -136,9 +136,9 @@ output_file_path_chat_level = "./output/chat/tiny_multi_task_improper_level_chat.csv", output_file_path_user_level = "./output/user/tiny_multi_task_improper_level_user.csv", output_file_path_conv_level = "./output/conv/tiny_multi_task_improper_level_conv.csv", - turns = False, + turns = False ) - testing_case_improper.featurize(col="message") + testing_case_improper.featurize() """ Test robustness of the FeatureBuilder to taking in an input that contains existing feature names. @@ -150,6 +150,7 @@ testing_chat_existing = FeatureBuilder( input_df = chat_df_existing_output, vector_directory = "./vector_data/", + message_col = "message_original", output_file_path_chat_level = "./output/chat/test_chat_level_existing_chat.csv", output_file_path_user_level = "./output/user/test_chat_level_existing_user.csv", output_file_path_conv_level = "./output/conv/test_chat_level_existing_conv.csv", @@ -158,7 +159,34 @@ "Moving Mimicry", "Forward Flow", "Discursive Diversity" + ], + turns = False + ) + testing_chat_existing.featurize() + + """ + Test robustness of the vector pipeline to weird inputs: + - Super long input + - Input containing only symbols (e.g,. ":-)") + - Empty input + - Input with many spaces + """ + vector_testing_input = pd.read_csv("data/cleaned_data/test_vector_edge_cases.csv", encoding='latin-1') + + test_vectors = FeatureBuilder( + input_df = vector_testing_input, + vector_directory = "./vector_data/", + output_file_path_chat_level = "./output/chat/test_vectors_chat.csv", + output_file_path_user_level = "./output/user/test_vectors_user.csv", + output_file_path_conv_level = "./output/conv/test_vectors_conv.csv", + custom_features = [ + "(BERT) Mimicry", + "Moving Mimicry", + "Forward Flow", + "Discursive Diversity" ], turns = False, + regenerate_vectors = True ) - testing_chat_existing.featurize(col="message") + test_vectors.featurize() + diff --git a/tests/run_tests.py b/tests/run_tests.py index 8fb938a9..aadd767c 100644 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -43,9 +43,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_chat.featurize(col="message") + testing_chat.featurize() testing_conv = FeatureBuilder( input_df = conv_df, @@ -59,9 +59,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_conv.featurize(col="message") + testing_conv.featurize() test_ner_feature_builder = FeatureBuilder( input_df = test_ner_df, @@ -76,9 +76,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - test_ner_feature_builder.featurize(col="message") + test_ner_feature_builder.featurize() # testing perturbed chat level features testing_chat_complex = FeatureBuilder( @@ -93,9 +93,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_chat_complex.featurize(col="message") + testing_chat_complex.featurize() # testing conv features testing_conv_complex = FeatureBuilder( @@ -110,9 +110,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_conv_complex.featurize(col="message") + testing_conv_complex.featurize() testing_conv_complex_ts = FeatureBuilder( input_df = conv_complex_timestamps_df, @@ -126,9 +126,9 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_conv_complex_ts.featurize(col="message") + testing_conv_complex_ts.featurize() # testing forward flow testing_forward_flow = FeatureBuilder( @@ -143,7 +143,7 @@ "Forward Flow", "Discursive Diversity" ], - turns = False, + turns = False ) - testing_forward_flow.featurize(col="message") \ No newline at end of file + testing_forward_flow.featurize() \ No newline at end of file diff --git a/tests/test_feature_metrics.py b/tests/test_feature_metrics.py index 42ad513a..4c1844c4 100644 --- a/tests/test_feature_metrics.py +++ b/tests/test_feature_metrics.py @@ -175,8 +175,8 @@ def test_chat_complex(batch): inv_result = batch[1][1][feature] dir_result = batch[2][1][feature] - inv_distance = og_result - inv_result - dir_distance = og_result - dir_result + inv_distance = abs(og_result - inv_result) + dir_distance = abs(og_result - dir_result) # calculate ratio between inv and dir ratio = dir_distance / inv_distance diff --git a/tests/test_package.py b/tests/test_package.py index 0106b230..ac145b66 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -4,6 +4,8 @@ from numpy import nan import logging import itertools +import os +from sklearn.metrics.pairwise import cosine_similarity # Import Test Outputs input_data = pd.read_csv("data/cleaned_data/multi_task_TINY_cols_renamed.csv", encoding='utf-8') @@ -13,6 +15,9 @@ case3b_chatdf = pd.read_csv("./output/chat/tiny_multi_task_case3b_level_chat.csv") case3c_chatdf = pd.read_csv("./output/chat/tiny_multi_task_case3c_level_chat.csv") impropercase_chatdf = pd.read_csv("./output/chat/tiny_multi_task_improper_level_chat.csv") +sentiment_output = pd.read_csv('./vector_data/sentiment/chats/test_vectors_chat.csv') +sbert_output = pd.read_csv('./vector_data/sentence/chats/test_vectors_chat.csv') + # Import the Feature Dictionary from team_comm_tools.feature_dict import feature_dict @@ -167,6 +172,8 @@ def test_improper_case(): file.write(f"Number of unique conversation identifiers in improper case: {improper_ids}\n") file.write(f"Number of unique conversation identifiers in Case 2: {case_2_ids}\n") + raise + def test_robustness_to_existing_column_names(): try: chat_df_orig = pd.read_csv("./output/chat/test_chat_level_chat.csv") # original output @@ -187,4 +194,43 @@ def test_robustness_to_existing_column_names(): file.write("------TEST FAILED------\n") file.write(f"Robustness check for passing in chat dataframe with feature columns failed.\n") - raise \ No newline at end of file + raise + +def get_nan_vector_str(): + current_dir = os.path.dirname(__file__) + nan_vector_file_path = os.path.join(current_dir, '../src/team_comm_tools/features/assets/nan_vector.txt') + nan_vector_file_path = os.path.abspath(nan_vector_file_path) + + f = open(nan_vector_file_path, "r") + return f.read() + +def str_to_vec(str_vec): + vector_list = [float(e) for e in str_vec[1:-1].split(',')] + return np.array(vector_list).reshape(-1, 1) + +def test_empty_vectors_equal(): + try: + # assert that the last two rows are equal; they're both empty + assert(sbert_output.iloc[-1]["message_embedding"]==sbert_output.iloc[-2]["message_embedding"]) + assert(sentiment_output.iloc[-1].equals(sentiment_output.iloc[-2])) + + # assert that the 'positive bert' of the last sentiment is np.nan + assert(np.isnan(float(sentiment_output.iloc[-1]["positive_bert"]))) + + # compare empty vector to nan vector + message_embedding_str = sbert_output.iloc[-1]["message_embedding"] + message_embedding_vec = str_to_vec(message_embedding_str) + nan_vector_str = get_nan_vector_str() + nan_vector = str_to_vec(nan_vector_str) + + # Compute cosine similarity and assert it's essentially 1 + similarity = cosine_similarity([message_embedding_vec.flatten()], [nan_vector.flatten()])[0][0] + assert(round(similarity, 0) == 1.0) + + except AssertionError: + with open('test.log', 'a') as file: + file.write("\n") + file.write("------TEST FAILED------\n") + file.write(f"Empty message vectors / sentence scores are not equal.\n") + + raise