adaptive_memory 0.2.1

An associative memory system using spreading activation with SQLite FTS5 full-text search
Documentation
1
2
3
4
5
6
7
8
9
10
�

��[ig��v�dZddlZddlZddlmZddlmZe�Zdedefd�Z	ded	ede
fd
�Zded	ede
fd�Zy)z+F1 evaluation metrics (ported from LoCoMo).�N)�Counter)�
PorterStemmer�s�returnc��t|�jdd�}tjdd|tj��}djd�|D��}dj|j
�j��}|S)z Normalize answer for comparison.�,�z\b(a|an|the|and)\b� )�flagsc3�FK�|]}|tjvs�|���y�w�N)�string�punctuation)�.0�chs  �0/home/spoj/adaptive_memory/bench/eval_metrics.py�	<genexpr>z#normalize_answer.<locals>.<genexpr>s����?�Q�r�"�F�,>�,>�">��Q�s�!�!)�str�replace�re�sub�
IGNORECASE�join�lower�split)rs r�normalize_answerrsc���A����s�B��A�
���$�c�1�B�M�M�B�A�
���?�Q�?�?�A����������"�#�A��H��
prediction�ground_truthc���t|�j�D�cgc]}tj|���}}t|�j�D�cgc]}tj|���}}|r|syt	|�t	|�z}t|j
��}|dk(ry|t|�z}|t|�z}d|z|z||zzScc}wcc}w)z$Token-level F1 with Porter stemming.�r�)rr�ps�stemr�sum�values�len)	rr�w�pred_tokens�	gt_tokens�common�num_same�	precision�recalls	         r�f1_scorer/s���'7�
�'C�'I�'I�'K�L�'K�!�2�7�7�1�:�'K�K�L�%5�l�%C�%I�%I�%K�L�%K�������%K�I�L��i��
�[�
!�G�I�$6�
6�F��6�=�=�?�#�H��1�}���3�{�+�+�I�
��I��
&�F�
�	�M�F�"�y�6�'9�:�:��M��Ls�C�Cc�`��|jd�D�cgc]}|j���}}|jd�D�cgc]}|j���}}|syg}|D]+�|rt�fd�|D��nd}|j|��-t	|�t|�zScc}wcc}w)z0F1 for multi-answer questions (comma-separated).rr!c3�6�K�|]}t|�����y�wr
)r/)r�pred�gts  �rrzf1_multi.<locals>.<genexpr>5s�����>�+�$�8�D�"�%�+�s�)r�strip�max�appendr%r')	rr�p�predictions�g�
ground_truths�scores�bestr3s	        @r�f1_multir=+s����&0�&6�&6�s�&;�<�&;��1�7�7�9�&;�K�<�(4�(:�(:�3�(?�@�(?�1�Q�W�W�Y�(?�M�@���
�F���BM�s�>�+�>�>�SV���
�
�d����v�;��V��$�$��=��@s�B&�B+)
�__doc__rr�collectionsr�	nltk.stemrr#rr�floatr/r=�rr�<module>rCsb��1�	�
��#��_��	
��	
��	
�;��;�C�;�E�;�&
%��
%�C�
%�E�
%r