Bigrames factoritzats ===================== Un *bigrama* és una seqüència de parelles de paraules que apareixen consecutivament en un text. Els bigrames s'utilitzen en aplicacions com la traducció automàtica, la generació de llenguatge natural o l'anàlisi de seqüències genètiques. Per exemple, donada la frase ``"a cat runs as fast as a bicicle"``, els seus bigrames serien: .. code-block:: pycon (a, cat), (cat, runs), (runs, as), (as, fast), (fast, as), (as, a), (a, bicicle). En aquest exercici treballarem amb *bigrames factoritzats*, que permeten representar, per a cada paraula, totes les possibles continuacions. Expressarem un bigrama factoritzat com un diccionari a on la clau és una paraula i el valor una llista amb totes les paraules que poden aparèixer immediatament després. Dissenya la funció següent i desa-la al fitxer ``bigrames.py``: .. py:function:: bigrames.extreu_bigrames(text, bigrama) *Modifica* el diccionari ``bigrama`` incorporant els bigrames trobats a l'string ``text``, és a dir, afegint cada possible continuació a la llista corresponent de la paraula però sense duplicats. A més, retorna una llista de tuples a on cada tupla és un bigrama factoritzat. :param str text: Text sense signes de puntuació i en minúscules on les paraules estan separades per espais. :param dict bigrama: Diccionari amb bigrames factoritzats. :return: Llista de tuples amb bigrames factoritzats. Cada tupla és una parella *(paraula,llista de continuacions*). La llista està ordenada ascendentment segons *paraula*. :rtype: list[tuple] Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-extreu-bigrames.txt :language: python3 :lines: 3-17 .. note:: Disposes de més tests al fitxer :download:`test-extreu-bigrames.txt` Disposeu de solucions al fitxer :download:`bigrames.py`